This should ensure that each frame get its metadata from its proper packet
regardless of frame delays caused by reordering or threading.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This helps the user to see the available streams just before the error message
if the stream specifiers do not match.
Signed-off-by: Marton Balint <cus@passwd.hu>
On init failure, let's just free it, so next time it will be recreated from
start.
Also fixes Coverity CID 1241515.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
In some cases resize events can happen even during fullscreen, so let's pass
the proper flag to SDL_SetVideoMode.
Fixes ticket #3964.
Reported-by: Jeff Dwork <jeff@reggie.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
Create a generic frame and a frame queue struct to handle video picture queues
and subtitle picture queues with common code. Also add the possibility to queue
AVFrames, however at the moment we only use SDL_Overlay buffers for video and
AVSubtitles for subtitles.
Signed-off-by: Marton Balint <cus@passwd.hu>
Since audio clock calculations are more accurate now, it is safe to decrease
the sync treshold to compensate the larger buffers caused by less frequent
audio callbacks.
Signed-off-by: Marton Balint <cus@passwd.hu>
Too many audio callbacks per second can cause buffer underruns especially under
load. As now we take into accound the elapsed time after an audio callback when
determining current audio clock, it is not that important to use small buffer
sizes and frequent audio callbacks, so lets remove the comment.
Signed-off-by: Marton Balint <cus@passwd.hu>
Instead of directly rolling back the frame queue, keep the last displayed
picture in the queue and use a boolean variable to keep track if it is
displayed or not. This makes the code cleaner because it removes the
complicated logic in pictq_prev_picture.
There should be no change in functionality.
Signed-off-by: Marton Balint <cus@passwd.hu>
Less than 0.04 sec delays should not be noticable, and it helps us with 50fps
content where some timing errors can cause a frame dup where it is not really
necessary.
Signed-off-by: Marton Balint <cus@passwd.hu>
I don't think this can acutally happen in the current code, but better safe
than sorry.
Fixes Coverity CID 732217.
Signed-off-by: Marton Balint <cus@passwd.hu>
Improves compatibility with XDCAM HD formats. It has been set for a long time
in ffmbc.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
Instead of using the demux function of libzvbi to split the packet to slices
(vbi lines), lets do it ourselves.
- eliminates the 1 frame delay between page input and output
- handles non-ascending line numbers more gracefully
- enables us to return error codes on some invalid packets instead of silently
ignoring them
Signed-off-by: Marton Balint <cus@passwd.hu>
As Reimar Döffinger pointed out there are non-x86 64bit architectures as well.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
Previously these type of streams were not returned even if wanted stream was
set to a stream of such. Now they are only skipped if they are not wanted
streams.
Fixes ffplay -sst <stream number> out.ts where stream number is a *_IMPAIRED stream.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
When SDL could not allocate a YUV overlay or open a window, the video thread
got locked up because it waited for the allocation to finish forever.
Reported-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
It was introduced in c2e8691c07, but since we no
longer no longer provide a custom get_buffer callback, the original cause of
the issue is gone.
Signed-off-by: Marton Balint <cus@passwd.hu>
It is no longer necessary. Also do frame timer and video current pos reset in
the main thread because with the wait removed, the timing would not be optimal
in the read thread.
Signed-off-by: Marton Balint <cus@passwd.hu>
When fix_sub_duration is used, and the duration fixing code is generating 0
duration, that is definitely zero, and not undefined or infinite (which may be
the case for decoded AVSubtitles depending on the codec), so it is safe to drop
it.
It fixes teletext subtitle sources, when the subtitles are transmitted twice
after each other for some reason.
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
Even if it does not matter at the moment, because subtitles with num_rect == 0
have no memory allocated, this is how we expect the users to use the API, a
returned AVSubtitle should be freed with avsubtitle_free.
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
It should not matter for real-life usage, it is just cleaner this way.
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
Also do not update current pts on dropped frames, it is no longer necessary.
Fixes regression part of ticket #2507.
Signed-off-by: Marton Balint <cus@passwd.hu>
Fixes audio packet pts values in some files generated by AVID TRMG 3.01.
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
After this patch, if a packet contains multiple teletext pages, the teletext
decoder can return the fist page and store the remaining pages in memory, and
return them to the user on the next calls to avcodec_decode_subtitle2.
Signed-off-by: Marton Balint <cus@passwd.hu>
- consider it an invalid PTS when the next PTS value is the same as the current one
- in case of invalid or unknown PTS, return vp->duration
This fixes ffplay part of ticket #3005.
Signed-off-by: Marton Balint <cus@passwd.hu>
This patch adds CODEC_CAP_DELAY support to avcodec_decode_subtitle2.
For DVB teletext decoding, a single teletext packet can contain multiple
teletext pages. In order to support that, the teletext decoder may buffer
some pages.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>