Commit Graph

28 Commits (6090bfcdab36c7fd4a008c463782c11a10fedafb)

Author SHA1 Message Date
elsid 20e3eeddde
Fix libavformat version check
2a68d945cd
added const version of a callback functions but didn't enable them. They were
guarded by a version check:

2a68d945cd/libavformat/version_major.h (L48)

So for anything LIBAVFORMAT_VERSION_MAJOR < 61 they are not enabled therefore
they are enabled for everything >= 61.0.100.

See https://github.com/elsid/openmw/actions/runs/10255993574/job/28374152796 as
example of failure when building with 60.16.100.
5 months ago
Sam Hellawell 61cb5b4da6 Support compiling with ffmpeg 5 and greater 5 months ago
elsid 94c1d0cced
Use unique_ptr to store istream 3 years ago
elsid df092b558b
Replace shared_ptr by unique_ptr 3 years ago
Bret Curtis f0db576611 removed redundant get on smart pointer; made pictq_[r|w]index unsigned longs to be type compatible with std::array pictq.size(); fixes assert issue 3 years ago
Bret Curtis bae8713998 make use of std::array `pictq.size()` instead of VIDEO_PICTURE_ARRAY_SIZE; remove redundant smart-pointer .get calls; fix typos 3 years ago
Bret Curtis 4eea734551 Resolves #6088 by rolling our own PacketList that replaces the deprecated AVPacketList; initial work done by akortunov in 60aec04606; adapted and cleaned up some old cruft along the way. 3 years ago
Bret Curtis 66a527c3de
Merge pull request #3075 from akortunov/warnfix
Fix MSVC's C4244 and C4267 warnings
4 years ago
Evil Eye 69aaf6ab04 don't touch frame->data 4 years ago
Andrei Kortunov 963e1b8b3f Fix MSVC's C4244 warnings 4 years ago
Gleb Mazovetskiy 36bac353df AV: Handle varying video frame dimensions 4 years ago
Gleb Mazovetskiy eb93fdfbea Use unique_ptr with custom deleter for VideoPicture::rgbaFrame 4 years ago
Gleb Mazovetskiy b7076549a3 osg-ffmpeg-videoplayer: Fix crash on ARM
osg-ffmpeg-videoplayer handled frame allocation incorrectly.

It used a `vector<uint8_t>` as its buffer, meaning the addresses could
did not respect alignment.

Instead, changes it to use `AVFrame` as buffers, allocated via `av_image_alloc`.

We also now only allocate the buffer once, instead of on every frame,
which should improve the framerate of videos.

Fixes the following crash on startup on ARM:

> Invalid address alignment (signal 7)

Fixes #5807
4 years ago
Andrei Kortunov 8084a336b5 Replace zeroes and nulls by nullptrs 4 years ago
elsid 40ad87bc4d
Replace OpenThreads by std types 5 years ago
Andrei Kortunov 454bae2c43 Make PacketQueue fields atomic to avoid data races (e.g. with ParseThread) 6 years ago
Ilya Zhuravlev 07e9ce84b3 Replace volatile bools with std::atomic<bool> 6 years ago
Stanislaw Halik 59d96d808e fix missing include 6 years ago
Andrei Kortunov f88d5e808c Rewrite media decoder to use FFMpeg 3.2+ API (task #4686) 6 years ago
Bret Curtis d785344fad purge all instances of <boost/shared_ptr.hpp>, clean up unused headers 8 years ago
Bret Curtis 07f75e1104 replace boost::shared_ptr in extern and components 8 years ago
Ewan Higgs 38a2de3c51 convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis 8 years ago
scrawl 530fb61ad0 Use OpenThreads instead of boost thread
This should allow OpenMW to work better with git versions of openscenegraph. OSG dev version 3.5.5 added the setting of thread affinity for the main thread. The problem is that in the boost/standard threading libraries, the affinity of a thread is inherited by any further threads launched from that thread, leading to these threads always running on the same core as the main thread unless you tell them not to.

With OpenThreads, the default affinity of a thread is none, no matter what parent thread it was launched from.

So, when using custom threading with OSG 3.6+, we have these options:
1. explicitely tell OSG to *not* set the thread affinity
or 2. explicitely set the thread affinity of additional threads created (possible with boost, but not possible with std::thread)
or 3. use OpenThreads
or 4. accept the suboptimal performance of non-OSG threads (in OpenMW's case the sound streaming & video threads) running on the same core as the main thread

This patch opts for 3.)

Reference: http://forum.openscenegraph.org/viewtopic.php?t=16158
8 years ago
scrawl cd2e6d4436 Move the __STDC_CONSTANT_MACROS define to cmakelists 10 years ago
scrawl e6ecb39d94 Potential include fix 10 years ago
scrawl 7991ea25c0 Potentially missing includes 10 years ago
scrawl 00f4f78717 Give a name to video streams for logging purposes 10 years ago
scrawl 92ef9b1c57 Rename to osg-ffmpeg-videoplayer 10 years ago