qtdemux: Fix reverse playback for pcm audio stream
Some raw lpcm or adpcm may have larger sample sizes than the max buffer size value set. Trimming the buffer causes bogus size error on reverse playback.
Example adpcm audio stream.
0:00:00.049765219 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:11851:qtdemux_parse_trak:<qtdemux0> track subtype: soun
0:00:00.049767609 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:11908:qtdemux_parse_trak:<qtdemux0> stsd len: 68
0:00:00.049771956 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:11909:qtdemux_parse_trak:<qtdemux0> stsd entry count: 1
0:00:00.049774504 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:11924:qtdemux_parse_trak:<qtdemux0> stsd type: ima4
0:00:00.049776464 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:11926:qtdemux_parse_trak:<qtdemux0> stsd type len: 52
0:00:00.049778650 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13080:qtdemux_parse_trak:<qtdemux0> version/rev: 00010000
0:00:00.049780583 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13081:qtdemux_parse_trak:<qtdemux0> vendor: 00000000
0:00:00.049782516 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13083:qtdemux_parse_trak:<qtdemux0> n_channels: 1
0:00:00.049784432 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13084:qtdemux_parse_trak:<qtdemux0> sample_size: 16
0:00:00.049786441 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13085:qtdemux_parse_trak:<qtdemux0> compression_id: 0
0:00:00.049788313 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13086:qtdemux_parse_trak:<qtdemux0> packet size: 0
0:00:00.049790928 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13088:qtdemux_parse_trak:<qtdemux0> sample rate: 22050
0:00:00.049792991 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13113:qtdemux_parse_trak:<qtdemux0> Sound sample description Version 1
0:00:00.049795027 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13114:qtdemux_parse_trak:<qtdemux0> samples/packet: 64
0:00:00.049796999 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13116:qtdemux_parse_trak:<qtdemux0> bytes/packet: 34
0:00:00.049798830 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13118:qtdemux_parse_trak:<qtdemux0> bytes/frame: 34
0:00:00.049800667 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13120:qtdemux_parse_trak:<qtdemux0> bytes/sample: 2
0:00:00.049802601 112786 0x7fccd0000eb0 LOG qtdemux qtdemux.c:13126:qtdemux_parse_trak:<qtdemux0> samples/frame: 64
0:00:00.049811274 112786 0x7fccd0000eb0 INFO qtdemux qtdemux.c:13957:qtdemux_parse_trak:<qtdemux0> unhandled type ima4
0:00:00.049815283 112786 0x7fccd0000eb0 INFO qtdemux qtdemux.c:13962:qtdemux_parse_trak:<qtdemux0> type ima4 caps audio/x-adpcm, layout=(string)quicktime
0:00:01.855474825 171664 0x7fbca8034a40 DEBUG qtdemux qtdemux.c:5537:gst_qtdemux_stream_update_segment:<qtdemux0:audio_0> New segment: time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.560000000, rate=-1.000000, applied_rate=1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:01.855927786 171664 0x7fbca8034a40 DEBUG qtdemux qtdemux.c:7140:gst_qtdemux_loop_state_movie:<qtdemux0> size 22050 larger than stream max_buffer_size 8192, trimming
0:00:01.856026989 171664 0x7fbca8034a40 DEBUG qtdemux qtdemux.c:7140:gst_qtdemux_loop_state_movie:<qtdemux0> size 22050 larger than stream max_buffer_size 8192, trimming
0:00:01.856088429 171664 0x7fbca8034a40 WARN qtdemux qtdemux.c:558:gst_qtdemux_pull_atom:<qtdemux0> error: This file is invalid and cannot be played.
0:00:01.856092631 171664 0x7fbca8034a40 WARN qtdemux qtdemux.c:558:gst_qtdemux_pull_atom:<qtdemux0> error: atom has bogus size 4292411360