Aras Pranckevicius 4515713db7 Fix #132237: crash when opening Ogg file with embedded album art
This works around ffmpeg bug https://trac.ffmpeg.org/ticket/10755
where for specific files that are:

- Ogg container format, with supported audio stream (e.g. Vorbis),
- But the video stream is not Ogg-compatible (e.g. Theora), but rather
  it is an embedded "album art" (AV_DISPOSITION_ATTACHED_PIC) in
  MJPEG, PNG or some other non-Ogg format.

Calling any sort of ffmpeg "seek" function on that video stream just
aborts from innards of ffmpeg.

So to work around this:
- Detect such files (ogg container, non-theora video, attached picture
  disposition) and for those:
- Never seek within them, and only ever decode one frame. Return that
  frame for any & all "give me a frame" requests.
- Additionally, calculating "how many frames this video has" for such
  files also returns nonsense ("millions of frames") since their frame
  rate is set to like 90000 or similar. So pretend they have a "sane"
  frame rate. Do all this frame rate calculation just once when opening
  the video, and use that result in all other places.
- Never build proxies for such video files, since e.g. "timecode"
  for them does not make sense.

All of this could be removed once/if ffmpeg fixes their issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/132920
2025-01-13 12:16:15 +01:00
2023-12-08 13:28:13 +11:00
2025-01-08 16:42:50 +01:00
2025-01-02 16:01:17 +11:00

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.

Description
No description provided
Readme 841 MiB
Languages
C++ 78%
Python 14.9%
C 2.9%
GLSL 1.9%
CMake 1.2%
Other 0.9%