Chris Robinson
2f8daec379
Allow pausing only certain types of sounds
2012-12-18 04:19:35 -08:00
Chris Robinson
a5356e194e
Allow specifying a type for the playTrack method
2012-12-18 01:35:20 -08:00
Chris Robinson
67485d3454
Store the AVStream in the decoder for easy referencing
2012-12-17 07:15:53 -08:00
Chris Robinson
4373218746
Fix audio stream check
2012-12-17 06:56:30 -08:00
Chris Robinson
58ab3407b7
Constify a couple fields
2012-12-17 04:17:06 -08:00
Chris Robinson
9e842a0bbb
Fix for trying to play videos when not supported
2012-12-17 00:41:04 -08:00
Chris Robinson
26660110e5
Allow building the video player without ffmpeg (playVideo will always throw an exception)
2012-12-17 00:20:56 -08:00
Chris Robinson
06fd66e99d
Move some fields to the class they're used in
2012-12-16 11:49:46 -08:00
Chris Robinson
c92cde2be9
Properly flush packet queues when at EOF
...
Note: the previous flush method was renamed to clear. Flushing a queue allows
consumers to retrieve queued packets, but not expect any more to come in.
2012-12-16 05:50:20 -08:00
Chris Robinson
6bc526b74d
Avoid another loop for decoding audio
2012-12-16 05:30:38 -08:00
Chris Robinson
254a623319
Remove a redundant check
2012-12-16 03:09:24 -08:00
Chris Robinson
dd20db5dc2
Remove the stream indices from the VideoState
2012-12-16 03:05:44 -08:00
Chris Robinson
3f6d36c712
Avoid double-setting the material texture
2012-12-16 02:19:19 -08:00
Chris Robinson
0edc87825d
Move audio_clock to the decoder where it's used
2012-12-16 01:17:58 -08:00
Chris Robinson
4561c22e2b
More fixes for the audio clock
...
The audio_clock for the decoder represents the end of the current packet, so it
needs to be adjusted back to match the position that's actually going to be
read next.
2012-12-16 00:07:56 -08:00
Chris Robinson
c869444dcf
Don't leak the IO context if avformat_open_input fails
2012-12-15 11:31:50 -08:00
scrawl
63e86555b6
use sample_aspect_ratio if available
2012-12-15 19:40:59 +01:00
scrawl
5ed04ae53e
added black bars
2012-12-15 19:23:03 +01:00
Chris Robinson
e6d27cd6d0
Merge remote-tracking branch 'scrawl/videoplayback' into videoplayback
2012-12-15 09:15:47 -08:00
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
scrawl
7477345481
fixed video material
2012-12-15 17:10:21 +01: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