mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/movenc: fix sample size being zero in pcmC
bits_per_raw_sample might not set when remux raw PCM. Fix #10433. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
9549712056
commit
0c02ad857c
|
@ -1225,6 +1225,7 @@ static int mov_write_pcmc_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra
|
||||||
{
|
{
|
||||||
int64_t pos = avio_tell(pb);
|
int64_t pos = avio_tell(pb);
|
||||||
int format_flags;
|
int format_flags;
|
||||||
|
int sample_size;
|
||||||
|
|
||||||
avio_wb32(pb, 0); /* size */
|
avio_wb32(pb, 0); /* size */
|
||||||
ffio_wfourcc(pb, "pcmC");
|
ffio_wfourcc(pb, "pcmC");
|
||||||
|
@ -1237,7 +1238,11 @@ static int mov_write_pcmc_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra
|
||||||
track->par->codec_id == AV_CODEC_ID_PCM_S24LE ||
|
track->par->codec_id == AV_CODEC_ID_PCM_S24LE ||
|
||||||
track->par->codec_id == AV_CODEC_ID_PCM_S32LE);
|
track->par->codec_id == AV_CODEC_ID_PCM_S32LE);
|
||||||
avio_w8(pb, format_flags);
|
avio_w8(pb, format_flags);
|
||||||
avio_w8(pb, track->par->bits_per_raw_sample);
|
sample_size = track->par->bits_per_raw_sample;
|
||||||
|
if (!sample_size)
|
||||||
|
sample_size = av_get_exact_bits_per_sample(track->par->codec_id);
|
||||||
|
av_assert0(sample_size);
|
||||||
|
avio_w8(pb, sample_size);
|
||||||
|
|
||||||
return update_size(pb, pos);
|
return update_size(pb, pos);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue