Chris Robinson
9b3cf5c159
Use a looping thread to trigger refreshes
2012-12-15 09:14:58 -08:00
Chris Robinson
fa1ad381da
Make sure packets are cleaned up properly
2012-12-15 08:42:54 -08:00
Chris Robinson
db23c8152e
Only duplicate AVPackets as needed
...
Packets that don't have a destruct method are using static memory, which will
only be valid until the next av_read_frame call. Otherwise, it's already
dynamically allocated and will remain valid.
2012-12-15 07:47:03 -08:00
Chris Robinson
6008cf0d15
Remove unneeded video_current_pts field
2012-12-15 05:02:01 -08:00
Chris Robinson
da44141b95
Avoid creating extra texture unit states on the video material
2012-12-15 04:17:28 -08:00
Chris Robinson
d50698d7d1
Clean up the rectangle and scene node used for displaying the video
2012-12-15 04:01:52 -08:00
Chris Robinson
eb0e8d9e37
Simplify PacketQueue::get
2012-12-15 02:50:59 -08:00
Chris Robinson
b41a77648e
Avoid re-reading the source sample to duplicate, to avoid pointer aliasing
2012-12-15 02:33:59 -08:00
Chris Robinson
62a995d492
Calculate audio sync once per read
2012-12-15 00:18:42 -08:00
Chris Robinson
cbdf6ad595
Move more stuff to where it should be, and improve cleanup
2012-12-14 09:07:59 -08:00
Chris Robinson
71ff90aaee
Don't use sub-frame timing for the video clock
2012-12-14 08:42:37 -08:00
Chris Robinson
582efcdb9b
Always try to resync if the clock difference is large
2012-12-14 07:40:19 -08:00
Chris Robinson
f97eaec7ab
Consolidate some code
2012-12-14 07:29:58 -08:00
Chris Robinson
d66d8a3118
Don't assume we can write beyond the end of the sample buffer
2012-12-14 06:43:51 -08:00
Chris Robinson
7332ffb0f8
Let the wanted sample size go down to 0
2012-12-14 06:02:34 -08:00
Chris Robinson
05c6483257
Fix external clock
2012-12-14 04:35:57 -08:00
Chris Robinson
2f37d31108
Move some definitions into the source file they're used in
2012-12-14 04:12:34 -08:00
Chris Robinson
a6e627001a
Avoid a for(;;) construct
2012-12-14 03:23:04 -08:00
Chris Robinson
4d6c05f6cc
Tighten audio skew allowance
2012-12-14 03:19:32 -08:00
Chris Robinson
8db5d10f10
Avoid showing a video picture if we're late
...
Ideally we should skip decoding, or at least YUV->RGB conversion, too.
2012-12-14 03:11:59 -08:00
Chris Robinson
157cb10f56
Fix a 16-bit audio assumption
2012-12-14 02:39:46 -08:00
Chris Robinson
c2b711d195
Move some more methods to the class they're part of
2012-12-14 02:36:29 -08:00
Chris Robinson
26a09ee7ba
Move some methods into their respective class
2012-12-14 01:38:00 -08:00
Chris Robinson
5221298a7f
Move a couple packet queue methods into the struct
2012-12-14 01:14:14 -08:00
Chris Robinson
90294c589b
Use a volatile bool for the refresh
2012-12-13 18:24:57 -08:00
Chris Robinson
f555dc60eb
Reduce some indentation
2012-12-13 18:12:17 -08:00
Chris Robinson
6cedd64509
Fix audio sync correction sizes
2012-12-13 18:05:27 -08:00
Chris Robinson
e291d0943d
Merge remote-tracking branch 'scrawl/videoplayback' into videoplayback
2012-12-13 17:53:50 -08:00
Chris Robinson
606fb982a8
Update to use avcodec_decode_audio4
2012-12-13 17:53:22 -08:00
scrawl
82564e07c7
fix crash when video file doesn't exist
2012-12-14 01:44:00 +01:00
scrawl
27cd9ff732
Revert "Use the decoded frame pts when available"
...
This reverts commit cab68df257
.
2012-12-14 01:03:49 +01:00
scrawl
9d6f656822
fixed ogre resource functions
2012-12-14 00:10:54 +01:00
Chris Robinson
43481ad117
Use the external clock by default
2012-12-13 06:11:32 -08:00
Chris Robinson
0a5ab977b7
Use the decoder's sample offset for calculating the stream offset
2012-12-13 05:04:53 -08:00
Chris Robinson
cab68df257
Use the decoded frame pts when available
2012-12-13 04:25:41 -08:00
Chris Robinson
1ea1407707
Support quad, 5.1, and 7.1 with OpenAL and ffmpeg
...
The other decoders don't guarantee any channel ordering, which makes them
useless.
2012-12-13 04:10:19 -08:00
Chris Robinson
600494eed8
More cleanup of unused code
2012-12-13 03:37:04 -08:00
Chris Robinson
f7ff8b3374
A bit more cleanup
2012-12-13 03:13:44 -08:00
Chris Robinson
7e8b844b2e
Clean up some unused code
2012-12-13 03:05:37 -08:00
Chris Robinson
d2fbae9760
Init and deinit the VideoState synchronously, and re-enable audio playback
2012-12-13 02:52:37 -08:00
Chris Robinson
1ffaf6625a
Remove SDL for playing movie audio and prepare for using an audio track
...
This breaks audio playback on movies
2012-12-13 01:42:20 -08:00
Chris Robinson
1fb9eef27b
Detach the thread used for frame timing
2012-12-12 22:02:33 -08:00
scrawl
7fd9e1d212
Merge branch 'videoplayback' of https://github.com/ChrisKCat/openmw into videoplayback
...
Conflicts:
apps/openmw/mwrender/videoplayer.cpp
2012-12-12 22:24:38 +01:00
scrawl
18d8c767bd
fix a bunch of warnings, improved error handling, initialize texture to black
2012-12-12 15:15:55 +01:00
Chris Robinson
2c1eceb9f0
Add methods to pause and stop all playing sounds (and music)
2012-12-12 02:33:12 -08:00
Chris Robinson
e82c4afd50
close SDL when closing the video, not after the video loop is finished
2012-12-12 00:36:52 -08:00
Chris Robinson
a62d5bbfe4
Sleep using the absolute time, so the thread creation doesn't add to the wait
2012-12-11 23:54:41 -08:00
Chris Robinson
2efdafecd9
Indentation fixes
2012-12-11 20:11:48 -08:00
Chris Robinson
277248cdcb
Fix some "comparison between signed and unsigned" warnings
2012-12-11 19:43:07 -08:00
Chris Robinson
3519934f27
Add a missing return value
2012-12-11 19:36:04 -08:00