mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
avcodec: fix wrong duration of packets (dvd, bluray)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
b197d83ca3
commit
85af60df89
@ -1808,13 +1808,13 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba,
|
||||
/* calc from frame_bytes, channels, and bits_per_coded_sample */
|
||||
switch (id) {
|
||||
case AV_CODEC_ID_PCM_DVD:
|
||||
if(bps<4)
|
||||
if(bps<4 || frame_bytes<3)
|
||||
return 0;
|
||||
return 2 * (frame_bytes / ((bps * 2 / 8) * ch));
|
||||
return 2 * ((frame_bytes - 3) / ((bps * 2 / 8) * ch));
|
||||
case AV_CODEC_ID_PCM_BLURAY:
|
||||
if(bps<4)
|
||||
if(bps<4 || frame_bytes<4)
|
||||
return 0;
|
||||
return frame_bytes / ((FFALIGN(ch, 2) * bps) / 8);
|
||||
return (frame_bytes - 4) / ((FFALIGN(ch, 2) * bps) / 8);
|
||||
case AV_CODEC_ID_S302M:
|
||||
return 2 * (frame_bytes / ((bps + 4) / 4)) / ch;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user