[Libav-user] mpegts demuxer resync method

Self User selfuser at gmail.com
Tue Jul 10 12:04:21 EEST 2018


I have an application that uses the ffmpeg code. (application is in C++)
my input is a file with TS packets (video stream)

I am using the code in the /doc/examples supplied with ffmpeg source code.

I need to check the TS packets data.

for this, I am using the mpegts.c code for demuxing.

specifically at the function:

 /* handle one TS packet */
static int handle_packet(MpegTSContext *ts, const uint8_t *packet)

Now I have some problems here.
First, I wanted to check that I am not missing any TS packets, so I write
to a file all the packets when entering to the  handle_packet()method.

1. problem - I see that the output file is bigger than the input source
file!!?, how come?
2. I tried to follow what is the reason, and I saw that there is a use in
the function:
mpegts_resync(), why there is a use in this function? I check my input with
hex editor, and there are no missing sync bytes (0x47)

I think that the resync process adding some wrong TS packets, to my
original input source, and I fail to test the TS packets

how to fix it?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20180710/f7ef86c0/attachment.html>

More information about the Libav-user mailing list