On 10/12/2012 04:15 PM, Janne Grunau wrote: > On 2012-10-12 16:14:39 +0200, Luca Barbato wrote: >> Use native tags instead of avi ones, simplifies a lot raw video codecs >> handling. >> --- >> libavformat/nutenc.c | 20 ++++--- >> tests/ref/lavfi/crop | 2 +- >> tests/ref/lavfi/crop_scale | 2 +- >> tests/ref/lavfi/crop_scale_vflip | 2 +- >> tests/ref/lavfi/crop_vflip | 2 +- >> tests/ref/lavfi/null | 2 +- >> tests/ref/lavfi/pixdesc | 114 >> +++++++++++++++++++-------------------- >> tests/ref/lavfi/pixfmts_copy | 114 >> +++++++++++++++++++-------------------- >> tests/ref/lavfi/pixfmts_crop | 82 ++++++++++++++-------------- >> tests/ref/lavfi/pixfmts_hflip | 82 ++++++++++++++-------------- >> tests/ref/lavfi/pixfmts_null | 114 >> +++++++++++++++++++-------------------- >> tests/ref/lavfi/pixfmts_pad | 34 ++++++------ >> tests/ref/lavfi/pixfmts_scale | 114 >> +++++++++++++++++++-------------------- >> tests/ref/lavfi/pixfmts_vflip | 114 >> +++++++++++++++++++-------------------- >> tests/ref/lavfi/scale200 | 2 +- >> tests/ref/lavfi/scale500 | 2 +- >> tests/ref/lavfi/vflip | 2 +- >> tests/ref/lavfi/vflip_crop | 2 +- >> tests/ref/lavfi/vflip_vflip | 2 +- >> 19 files changed, 408 insertions(+), 400 deletions(-) >> >> diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c >> index 4b1e663..78ef0ea 100644 >> --- a/libavformat/nutenc.c >> +++ b/libavformat/nutenc.c >> @@ -371,9 +371,16 @@ static void write_mainheader(NUTContext *nut, >> AVIOContext *bc){ >> } >> } >> >> +static const AVCodecTag * const nut_codec_tags[] = { >> + ff_nut_video_tags, ff_nut_subtitle_tags, >> + ff_codec_bmp_tags, ff_codec_wav_tags, 0 >> +}; >> + >> static int write_streamheader(AVFormatContext *avctx, AVIOContext *bc, >> AVStream *st, int i){ >> NUTContext *nut = avctx->priv_data; >> AVCodecContext *codec = st->codec; >> + unsigned codec_tag = av_codec_get_tag(nut_codec_tags, codec->codec_id); >> + >> ff_put_v(bc, i); >> switch(codec->codec_type){ >> case AVMEDIA_TYPE_VIDEO: ff_put_v(bc, 0); break; >> @@ -382,8 +389,12 @@ static int write_streamheader(AVFormatContext *avctx, >> AVIOContext *bc, AVStream >> default : ff_put_v(bc, 3); break; >> } >> ff_put_v(bc, 4); >> - if (codec->codec_tag){ >> - avio_wl32(bc, codec->codec_tag); >> + >> + if (!codec_tag) >> + codec_tag = codec->codec_tag; >> + >> + if (codec_tag) { >> + avio_wl32(bc, codec_tag); >> } else { >> av_log(avctx, AV_LOG_ERROR, "No codec tag defined for stream %d\n", >> i); >> return AVERROR(EINVAL); >> @@ -873,8 +884,5 @@ AVOutputFormat ff_nut_muxer = { >> .write_packet = nut_write_packet, >> .write_trailer = nut_write_trailer, >> .flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS, >> - .codec_tag = (const AVCodecTag * const []){ >> - ff_codec_bmp_tags, ff_nut_video_tags, ff_codec_wav_tags, >> - ff_nut_subtitle_tags, 0 >> - }, >> + .codec_tag = nut_codec_tags, > > ok if you have verified that indeed only the tags cause the fate ref > changes. >
checked. pushing in a while the v2 set. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel