[FFmpeg-devel] [PATCH] libavformat/aviobuf.c: don't treat 0 from read_packet as EOF

James Almer jamrial at gmail.com
Sun Jun 4 00:17:46 EEST 2017


On 6/3/2017 6:11 PM, Daniel Kučera wrote:
> 2017-06-03 23:04 GMT+02:00 James Almer <jamrial at gmail.com>:
>> On 6/3/2017 5:31 PM, Daniel Kučera wrote:
>>> 2017-06-03 21:54 GMT+02:00 Michael Niedermayer <michael at niedermayer.cc>:
>>>> On Sat, Jun 03, 2017 at 10:16:59AM +0200, Daniel Kucera wrote:
>>>>> Signed-off-by: Daniel Kucera <daniel.kucera at gmail.com>
>>>>> ---
>>>>>  libavformat/avio.c    |  2 +-
>>>>>  libavformat/aviobuf.c | 18 ++++++++++--------
>>>>>  libavformat/cache.c   |  2 +-
>>>>>  libavformat/file.c    |  2 ++
>>>>>  libavformat/subfile.c |  2 +-
>>>>>  libavformat/wtvdec.c  |  4 ++--
>>>>>  6 files changed, 17 insertions(+), 13 deletions(-)
>>>>
>>>> looses Duration in output in:
>>>> cat ~/videos/matrixbench_mpeg2.mpg | ./ffprobe -read_ahead_limit -1 cache:pipe:0
>>>>
>>>
>>> I fixed that RTP issue, I'll send updated patch. What does it mean
>>> "looses Duration" ?
>>
>> The reported duration (and bitrate it seems) for the input file is lost,
>> and N/A is shown instead.
>>
>> Without your patch:
>>
>> [cache @ 0000000000ecac40] Inner protocol failed to seekback end : -40
>> [mpeg @ 00000000024f3740] start time for stream 0 is not set in
>> estimate_timings_from_pts
>> [cache @ 0000000000ecac40] Inner protocol failed to seekback end : -40
>>     Last message repeated 2 times
>> Input #0, mpeg, from 'cache:pipe:0':
>>   Duration: 00:03:07.66, start: 0.220000, bitrate: 5633 kb/s
>>     Stream #0:0[0x1bf]: Data: dvd_nav_packet
>>     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv,
>> bt470bg/bt470m/bt470m, bottom first), 720x576 [SAR 16:15 DAR 4:3], 25
>> fps, 25 tbr, 90k tbn, 50 tbc
>>     Stream #0:2[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
>> Unsupported codec with id 100357 for input stream 0
>> [cache @ 0000000000ecac40] Statistics, cache hits:16 cache misses:4033
>>
>>
>> With it:
>>
>> [cache @ 00000000010aac40] Inner protocol failed to seekback end : -40
>>     Last message repeated 1 times
>> Input #0, mpeg, from 'cache:pipe:0':
>>   Duration: N/A, start: 0.220000, bitrate: N/A
>>     Stream #0:0[0x1bf]: Data: dvd_nav_packet
>>     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv,
>> bt470bg/bt470m/bt470m, bottom first), 720x576 [SAR 16:15 DAR 4:3], 25
>> fps, 25 tbr, 90k tbn, 50 tbc
>>     Stream #0:2[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
>> Unsupported codec with id 100357 for input stream 0
>> [cache @ 00000000010aac40] Statistics, cache hits:0 cache misses:4033
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> Is it with the latest version I sent half an hour ago?

Yes.

> 
> It seems to be working for me. Can you please provide your testing
> file and command?

I used the exact command Michael posted, with ffprobe on Windows.

> 
>  cat fate-suite/mpeg2/matrixbench_mpeg2.lq1.mpg | ./ffprobe
> -read_ahead_limit -1 cache:pipe:0
> ffprobe version N-86331-gae37d3a1c4 Copyright (c) 2007-2017 the FFmpeg
> developers
>   built with gcc 6.3.0 (Ubuntu 6.3.0-12ubuntu2) 20170406
>   configuration: --enable-debug=3 --enable-gpl --enable-libx264
>   libavutil      55. 63.100 / 55. 63.100
>   libavcodec     57. 96.101 / 57. 96.101
>   libavformat    57. 72.101 / 57. 72.101
>   libavdevice    57.  7.100 / 57.  7.100
>   libavfilter     6. 90.100 /  6. 90.100
>   libswscale      4.  7.101 /  4.  7.101
>   libswresample   2.  8.100 /  2.  8.100
>   libpostproc    54.  6.100 / 54.  6.100
> [cache @ 0x55e680107560] Inner protocol failed to seekback end : -38
>     Last message repeated 3 times
> Input #0, mpeg, from 'cache:pipe:0':
>   Duration: 00:00:00.96, start: 0.540000, bitrate: 1757 kb/s
>     Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv,
> progressive), 716x236 [SAR 1:1 DAR 179:59], 25 fps, 25 tbr, 90k tbn,
> 50 tbc
> [cache @ 0x55e680107560] Statistics, cache hits:10 cache misses:7

That's not the sample I (and i assume Michael as well) tried.

http://samples.ffmpeg.org/benchmark/testsuite1/matrixbench_mpeg2.mpg
Which has one video, audio and data stream.


More information about the ffmpeg-devel mailing list