[Ffmpeg-devel] avformat/mpegts reads too much data for lowbitratestreams
Måns Rullgård
mru
Thu Jun 9 12:20:35 CEST 2005
Fabrice Bellard <fabrice at bellard.org> writes:
> M?ns Rullg?rd wrote:
>> Sergio Garcia Murillo <sgm254 at tid.es> writes:
>>
>>>> I've been using libavformat/codec in an application in the works
>>>> for some time now, and one of the quirks I have come across is
>>>> that the mpegts format reader is searching across WAY too many
>>>> packets (MAX_SCAN_PACKETS) for a dvb specific service description
>>>> table. This table is not required in the mpeg ts format, and is
>>>> wrecking havock on my application when trying to tune a radio
>>>> service without this service table. As a temporary workaround I've
>>>> disabled the scan for sdt in mpegts_read_header. Without this
>>>> workaround, the live stream that is to be decoded is delayed
>>>> anywhere from 5-10 seconds before packets starts to arrive for
>>>> decoding..
>>>
>>> I have the same problem, i was decoding an mpeg2 ts encoded with
>>> AVS at 200kbs and it never got played until i removed the
>>> handle_packets call. Don't know if there is a better way of
>>> resolving the problem or not.
>> If nobody objects soon I'll just go ahead and remove the SDT parsing,
>> or at least make the search a bit less annoying.
>
> I suggest that you keep the SDT parsing but that you look for it only
> in the first N bytes of the stream (where N is for example 4KB).
A couple of DVB samples I checked repeat the SDT every 2 seconds. If
we want to be sure to catch it, it will be necessary to keep looking
for a few seconds. If the stream is in fact not DVB, this will impose
an annoying delay. Limiting the search by size is not ideal, either,
the better solution being a time-limited search, as determined by PCR
values. This is of course more complex.
--
M?ns Rullg?rd
mru at inprovide.com
More information about the ffmpeg-devel
mailing list