Message ID | 20211205173535.2306292-5-tcChlisop0@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add support for Matroska BlockAdditionMapping elements | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
On Sun, Dec 05, 2021 at 06:35:34PM +0100, quietvoid wrote: > Improves code legibility by not using bit shifts. > Also avoids duplicating the dvcC/dvvC ISOM box writing code. > > Signed-off-by: quietvoid <tcChlisop0@gmail.com> > --- > libavformat/movenc.c | 24 +++++++----------------- > 1 file changed, 7 insertions(+), 17 deletions(-) > > diff --git a/libavformat/movenc.c b/libavformat/movenc.c > index 38ff90833a..208378fc11 100644 > --- a/libavformat/movenc.c > +++ b/libavformat/movenc.c > @@ -27,6 +27,7 @@ > #include "movenc.h" > #include "avformat.h" > #include "avio_internal.h" > +#include "dovi_isom.h" > #include "riff.h" > #include "avio.h" > #include "isom.h" > @@ -1911,6 +1912,8 @@ static int mov_write_sv3d_tag(AVFormatContext *s, AVIOContext *pb, AVSphericalMa > > static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDecoderConfigurationRecord *dovi) > { > + uint8_t buf[ISOM_DVCC_DVVC_SIZE]; > + > avio_wb32(pb, 32); /* size = 8 + 24 */ > if (dovi->dv_profile > 10) > ffio_wfourcc(pb, "dvwC"); > @@ -1918,23 +1921,10 @@ static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDe > ffio_wfourcc(pb, "dvvC"); > else > ffio_wfourcc(pb, "dvcC"); > - avio_w8(pb, dovi->dv_version_major); > - avio_w8(pb, dovi->dv_version_minor); > - avio_wb16(pb, (dovi->dv_profile << 9) | (dovi->dv_level << 3) | > - (dovi->rpu_present_flag << 2) | (dovi->el_present_flag << 1) | > - dovi->bl_present_flag); > - avio_wb32(pb, (dovi->dv_bl_signal_compatibility_id << 28) | 0); > - > - ffio_fill(pb, 0, 4 * 4); /* reserved */ > - av_log(s, AV_LOG_DEBUG, "DOVI in %s box, version: %d.%d, profile: %d, level: %d, " > - "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d\n", > - dovi->dv_profile > 10 ? "dvwC" : (dovi->dv_profile > 7 ? "dvvC" : "dvcC"), > - dovi->dv_version_major, dovi->dv_version_minor, > - dovi->dv_profile, dovi->dv_level, > - dovi->rpu_present_flag, > - dovi->el_present_flag, > - dovi->bl_present_flag, > - dovi->dv_bl_signal_compatibility_id); > + > + ff_isom_put_dvcc_dvvc(s, buf, dovi); > + avio_write(pb, buf, sizeof(buf)); > + LGTM > return 32; /* 8 + 24 */ > } > > -- > 2.34.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 38ff90833a..208378fc11 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -27,6 +27,7 @@ #include "movenc.h" #include "avformat.h" #include "avio_internal.h" +#include "dovi_isom.h" #include "riff.h" #include "avio.h" #include "isom.h" @@ -1911,6 +1912,8 @@ static int mov_write_sv3d_tag(AVFormatContext *s, AVIOContext *pb, AVSphericalMa static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDecoderConfigurationRecord *dovi) { + uint8_t buf[ISOM_DVCC_DVVC_SIZE]; + avio_wb32(pb, 32); /* size = 8 + 24 */ if (dovi->dv_profile > 10) ffio_wfourcc(pb, "dvwC"); @@ -1918,23 +1921,10 @@ static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDe ffio_wfourcc(pb, "dvvC"); else ffio_wfourcc(pb, "dvcC"); - avio_w8(pb, dovi->dv_version_major); - avio_w8(pb, dovi->dv_version_minor); - avio_wb16(pb, (dovi->dv_profile << 9) | (dovi->dv_level << 3) | - (dovi->rpu_present_flag << 2) | (dovi->el_present_flag << 1) | - dovi->bl_present_flag); - avio_wb32(pb, (dovi->dv_bl_signal_compatibility_id << 28) | 0); - - ffio_fill(pb, 0, 4 * 4); /* reserved */ - av_log(s, AV_LOG_DEBUG, "DOVI in %s box, version: %d.%d, profile: %d, level: %d, " - "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d\n", - dovi->dv_profile > 10 ? "dvwC" : (dovi->dv_profile > 7 ? "dvvC" : "dvcC"), - dovi->dv_version_major, dovi->dv_version_minor, - dovi->dv_profile, dovi->dv_level, - dovi->rpu_present_flag, - dovi->el_present_flag, - dovi->bl_present_flag, - dovi->dv_bl_signal_compatibility_id); + + ff_isom_put_dvcc_dvvc(s, buf, dovi); + avio_write(pb, buf, sizeof(buf)); + return 32; /* 8 + 24 */ }
Improves code legibility by not using bit shifts. Also avoids duplicating the dvcC/dvvC ISOM box writing code. Signed-off-by: quietvoid <tcChlisop0@gmail.com> --- libavformat/movenc.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-)