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
2022-01-05 12:19:22 +01:00
Bret Curtis
bae8713998
make use of std::array pictq.size()
instead of VIDEO_PICTURE_ARRAY_SIZE; remove redundant smart-pointer .get calls; fix typos
2022-01-05 09:29:10 +01:00
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.
2022-01-05 09:29:10 +01:00
elsid
7498a86abe
Remove redundant semicolons
2021-07-05 13:11:54 +02:00
Dan Church
70a0229010
Fix future FFMpeg API changes
...
avcodec_find_decoder now returns const AVCodec*.
2021-06-01 10:56:48 -05:00
Evil Eye
54d32817d5
Use av_free and maybe get Coverity to understand
2021-05-19 17:12:41 +02:00
Bret Curtis
66a527c3de
Merge pull request #3075 from akortunov/warnfix
...
Fix MSVC's C4244 and C4267 warnings
2021-05-14 21:28:56 +02:00
Evil Eye
69aaf6ab04
don't touch frame->data
2021-05-13 14:45:13 +02:00
Evil Eye
ed118537a8
use unique_ptr instead
2021-05-13 14:02:36 +02:00
Evil Eye
3b7cef9e88
add PacketGuard and move try/catch up
2021-05-13 12:01:32 +02:00
Evil Eye
1b61ec979d
switch to lock_guards
2021-05-13 11:25:58 +02:00
Andrei Kortunov
963e1b8b3f
Fix MSVC's C4244 warnings
2021-05-12 10:34:40 +04:00
Andrei Kortunov
f9d42ed396
Fix MSVC's C4267 warnings
2021-05-12 10:34:39 +04:00
Evil Eye
de37ca8e2c
Catch exceptions in VideoThread
2021-05-10 17:47:57 +02:00
Andrei Kortunov
124a33d8a3
Fix uninitialized variables
2021-04-10 10:58:00 +04:00
Andrei Kortunov
93954a961c
Unlock mutex on return to avoid hang
2021-04-10 09:30:58 +04:00
Gleb Mazovetskiy
1db7d2ec4e
Restore compatibility with FFMpeg < 57.80.100
...
This should fix macOS Travis build broken by 58d33aa95b
2021-03-08 19:29:34 +00:00
Gleb Mazovetskiy
36bac353df
AV: Handle varying video frame dimensions
2021-03-08 04:00:11 +00:00
Gleb Mazovetskiy
58d33aa95b
AV: Fix all memory leaks
...
The most substantial memory leak came from `PacketQueue::get`
not unreferencing its argument packet.
Other leaks came from using `av_free` instead of type-specific free
functions.
Also modifies `PacketQueue::put` for readability.
2021-03-08 03:16:55 +00:00
Gleb Mazovetskiy
eb93fdfbea
Use unique_ptr with custom deleter for VideoPicture::rgbaFrame
2021-03-07 17:58:09 +00:00
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
2021-03-07 03:33:00 +00:00
Gleb Mazovetskiy
99ba45a308
Optional static builds of OSG, MyGUI, Bullet
2021-01-26 19:00:55 +00:00
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
2020-11-29 11:14:07 +04:00
elsid
40ad87bc4d
Replace OpenThreads by std types
2020-06-25 22:16:09 +02:00
Andrei Kortunov
454bae2c43
Make PacketQueue fields atomic to avoid data races (e.g. with ParseThread)
2019-05-24 08:04:20 +04:00
Ilya Zhuravlev
07e9ce84b3
Replace volatile bools with std::atomic<bool>
2018-12-24 14:19:35 -05:00
Stanislaw Halik
59d96d808e
fix missing include
2018-12-07 04:23:52 +01:00
Andrei Kortunov
f88d5e808c
Rewrite media decoder to use FFMpeg 3.2+ API (task #4686 )
2018-11-03 22:34:25 +04:00
Ilya Zhuravlev
b4ec8aaf5e
VideoState::queue_picture: ffmpeg expects a buffer of 4 pointers in sws_scale
2018-01-21 12:21:22 -05:00
scrawl
4c174ecd12
Merge changes to coverity scan script
2017-10-15 17:06:58 +02:00
Bret Curtis
11c4aed4e5
algo needed for std::min/max in msvc2013
2017-06-10 09:09:30 +02:00
Bret Curtis
39185e6f8c
purge the rest of boost::shared and any other boost related things that no longer are required
...
put boost system back in, clean others up
revert Qt
add back boost fstream
2017-06-09 19:08:53 +02:00
Bret Curtis
d785344fad
purge all instances of <boost/shared_ptr.hpp>, clean up unused headers
2017-06-09 19:08:53 +02:00
Bret Curtis
07f75e1104
replace boost::shared_ptr in extern and components
2017-06-09 19:08:53 +02:00
Ewan Higgs
38a2de3c51
convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis
2017-06-09 16:49:25 +02:00
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
2016-10-10 18:23:06 +02:00
Roman Proskuryakov
da59ef0f67
Rewrites FindFFmpeg using LibFindMacros handling components properly
2016-05-10 12:43:54 +03:00
Bret Curtis
2c90b0b78d
fix a few spelling mistakes
2016-04-07 11:55:49 +02:00
Bret Curtis
3ea3d07d44
really purge libav
2015-11-12 16:39:29 +01:00
Bret Curtis
39f89f967b
from kcat: We can't simply get rid of this, otherwise it may break for certain kinds of packets.
2015-11-12 16:39:29 +01:00
Bret Curtis
8d2990cc03
add support for ffmpeg29 thanks to Andreas Cadhalpun; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803848
2015-11-12 16:39:29 +01:00
scrawl
cd2e6d4436
Move the __STDC_CONSTANT_MACROS define to cmakelists
2015-06-28 05:53:03 +02:00
scrawl
3663511cdb
Merge branch 'master' of https://github.com/OpenMW/openmw into osg
...
Conflicts:
apps/opencs/CMakeLists.txt
extern/ogre-ffmpeg-videoplayer/CMakeLists.txt
2015-06-16 19:53:41 +02:00
scrawl
f70250a296
Merge branch 'master' of https://github.com/OpenMW/openmw into osg
...
Conflicts:
apps/launcher/CMakeLists.txt
apps/opencs/CMakeLists.txt
apps/opencs/view/render/worldspacewidget.cpp
apps/openmw/CMakeLists.txt
components/CMakeLists.txt
extern/osg-ffmpeg-videoplayer/CMakeLists.txt
2015-06-13 21:11:24 +02:00
scrawl
e6ecb39d94
Potential include fix
2015-06-04 20:42:05 +02:00
scrawl
7ac4b2bb66
Fix for travis build issue
2015-06-04 01:26:23 +02:00
scrawl
60ad568004
Another missing include
2015-06-03 23:55:04 +02:00
scrawl
7991ea25c0
Potentially missing includes
2015-06-03 23:32:49 +02:00
scrawl
974fda5bde
Merge branch 'master' of https://github.com/OpenMW/openmw into osg
...
Conflicts:
extern/sdl4ogre/sdlwindowhelper.cpp
2015-06-03 03:18:29 +02:00
scrawl
4d5c446a44
Minor cleanup
2015-06-02 19:36:57 +02:00