[FFmpeg-trac] #7121(undetermined:new): Changing framerate of an MJPEG stream with piping drops malformed images

FFmpeg trac at avcodec.org
Tue Apr 3 18:56:54 EEST 2018


#7121: Changing framerate of an MJPEG stream with piping drops malformed images
-------------------------------------+-------------------------------------
             Reporter:  firesharker  |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  unspecified  |  undetermined
             Keywords:               |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by Gyan):

 I tested with current git using same commands when this was asked at SE
 and it reproduces.

 Of note is the following from first command in pipe with `-v 48`. The
 salient parts are the buffer sizes reported

 {{{
 [avi @ 0000000000498340] Before avformat_find_stream_info() pos: 5678
 bytes read:130312 seeks:4 nb_streams:1
 [mjpeg @ 0000000002904400] marker=d8 avail_size_in_buf=87542
 [mjpeg @ 0000000002904400] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904400] marker=db avail_size_in_buf=87540
 [mjpeg @ 0000000002904400] index=0
 [mjpeg @ 0000000002904400] qscale[0]: 4
 [mjpeg @ 0000000002904400] marker parser used 67 bytes (536 bits)
 [mjpeg @ 0000000002904400] marker=db avail_size_in_buf=87471
 [mjpeg @ 0000000002904400] index=1
 [mjpeg @ 0000000002904400] qscale[1]: 9
 [mjpeg @ 0000000002904400] marker parser used 67 bytes (536 bits)
 [mjpeg @ 0000000002904400] marker=c0 avail_size_in_buf=87402
 [mjpeg @ 0000000002904400] Changing bps from 0 to 8
 [mjpeg @ 0000000002904400] sof0: picture: 1280x720
 [mjpeg @ 0000000002904400] component 0 2:2 id: 0 quant:0
 [mjpeg @ 0000000002904400] component 1 1:1 id: 1 quant:1
 [mjpeg @ 0000000002904400] component 2 1:1 id: 2 quant:1
 [mjpeg @ 0000000002904400] pix fmt id 22111100
 [mjpeg @ 0000000002904400] Format yuvj420p chosen by get_format().
 [mjpeg @ 0000000002904400] marker parser used 17 bytes (136 bits)
 [mjpeg @ 0000000002904400] marker=c4 avail_size_in_buf=87383
 [mjpeg @ 0000000002904400] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904400] marker=c4 avail_size_in_buf=87350
 [mjpeg @ 0000000002904400] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904400] marker=c4 avail_size_in_buf=87167
 [mjpeg @ 0000000002904400] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904400] marker=c4 avail_size_in_buf=87134
 [mjpeg @ 0000000002904400] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904400] marker=ef avail_size_in_buf=86951
 [mjpeg @ 0000000002904400] marker parser used 152 bytes (1216 bits)
 [mjpeg @ 0000000002904400] escaping removed 816 bytes
 [mjpeg @ 0000000002904400] marker=da avail_size_in_buf=86796
 [mjpeg @ 0000000002904400] marker parser used 85980 bytes (687840 bits)
 [mjpeg @ 0000000002904400] marker=d9 avail_size_in_buf=576
 [mjpeg @ 0000000002904400] decode frame unused 576 bytes
 [avi @ 0000000000498340] max_analyze_duration 5000000 reached at 5000000
 microseconds st:0
 }}}

 And in the receiving command,

 {{{
 [image2pipe @ 00000000028f2f00] Opening 'pipe:' for reading
 [pipe @ 00000000028f3b40] Setting default whitelist 'crypto'
 [image2pipe @ 00000000028f2f00] Before avformat_find_stream_info() pos: 0
 bytes read:32768 seeks:0 nb_streams:1
 [mjpeg @ 0000000002904d80] marker=d8 avail_size_in_buf=2003270
 [mjpeg @ 0000000002904d80] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904d80] marker=db avail_size_in_buf=2003268
 [mjpeg @ 0000000002904d80] index=0
 [mjpeg @ 0000000002904d80] qscale[0]: 4
 [mjpeg @ 0000000002904d80] marker parser used 67 bytes (536 bits)
 [mjpeg @ 0000000002904d80] marker=db avail_size_in_buf=2003199
 [mjpeg @ 0000000002904d80] index=1
 [mjpeg @ 0000000002904d80] qscale[1]: 9
 [mjpeg @ 0000000002904d80] marker parser used 67 bytes (536 bits)
 [mjpeg @ 0000000002904d80] marker=c0 avail_size_in_buf=2003130
 [mjpeg @ 0000000002904d80] Changing bps from 0 to 8
 [mjpeg @ 0000000002904d80] sof0: picture: 1280x720
 [mjpeg @ 0000000002904d80] component 0 2:2 id: 0 quant:0
 [mjpeg @ 0000000002904d80] component 1 1:1 id: 1 quant:1
 [mjpeg @ 0000000002904d80] component 2 1:1 id: 2 quant:1
 [mjpeg @ 0000000002904d80] pix fmt id 22111100
 [mjpeg @ 0000000002904d80] Format yuvj420p chosen by get_format().
 [mjpeg @ 0000000002904d80] marker parser used 17 bytes (136 bits)
 [mjpeg @ 0000000002904d80] marker=c4 avail_size_in_buf=2003111
 [mjpeg @ 0000000002904d80] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904d80] marker=c4 avail_size_in_buf=2003078
 [mjpeg @ 0000000002904d80] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904d80] marker=c4 avail_size_in_buf=2002895
 [mjpeg @ 0000000002904d80] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904d80] marker=c4 avail_size_in_buf=2002862
 [mjpeg @ 0000000002904d80] marker parser used 0 bytes (0 bits)
 [mjpeg @ 0000000002904d80] marker=ef avail_size_in_buf=2002679
 [mjpeg @ 0000000002904d80] marker parser used 152 bytes (1216 bits)
 [mjpeg @ 0000000002904d80] escaping removed 1916544 bytes
 [mjpeg @ 0000000002904d80] marker=da avail_size_in_buf=2002524
 [mjpeg @ 0000000002904d80] marker parser used 85980 bytes (687840 bits)
 [mjpeg @ 0000000002904d80] marker=d9 avail_size_in_buf=1916304
 [mjpeg @ 0000000002904d80] decode frame unused 1916304 bytes
 [image2pipe @ 00000000028f2f00] Probe buffer size limit of 5000000 bytes
 reached
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7121#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list