* commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52': lavf: add AVFMT_FLAG_BITEXACT. Conflicts: doc/APIchanges libavformat/avformat.h libavformat/flacenc.c libavformat/movenc.c libavformat/oggenc.c libavformat/options_table.h libavformat/version.h tests/fate/video.mak
Unified · Split
| @@ -15,6 +15,10 @@ libavutil: 2012-10-22 · 14 unmodified lines | |||
| 15 | 15 | ||
| 16 | API changes, most recent first: | 16 | API changes, most recent first: |
| 17 | 17 | ||
| 18 | 2014-05-xx - xxxxxxx - lavf 55.17.0 - avformat.h | ||
| 19 | Add AVMFT_FLAG_BITEXACT flag. Muxers now use it instead of checking | ||
| 20 | CODEC_FLAG_BITEXACT on the first stream. | ||
| 21 | |||
| 18 | 2014-05-15 - xxxxxxx - lswr 0.19.100 - swresample.h | 22 | 2014-05-15 - xxxxxxx - lswr 0.19.100 - swresample.h |
| 19 | Add swr_close() | 23 | Add swr_close() |
| 20 | 24 | ||
| @@ -1252,6 +1252,13 @@ typedef struct AVFormatContext { · 1251 unmodified lines | |||
| 1252 | #define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. | 1252 | #define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. |
| 1253 | #define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted | 1253 | #define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted |
| 1254 | #define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet. | 1254 | #define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet. |
| 1255 | /** | ||
| 1256 | * When muxing, try to avoid writing any random/volatile data to the output. | ||
| 1257 | * This includes any random IDs, real-time timestamps/dates, muxer version, etc. | ||
| 1258 | * | ||
| 1259 | * This flag is mainly intended for testing. | ||
| 1260 | */ | ||
| 1261 | #define AVFMT_FLAG_BITEXACT 0x0400 | ||
| 1255 | #define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload | 1262 | #define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload |
| 1256 | #define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) | 1263 | #define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) |
| 1257 | #define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted) | 1264 | #define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted) |
| @@ -98,7 +98,7 @@ static int flac_write_header(struct AVFormatContext *s) · 97 unmodified lines | |||
| 98 | return ret; | 98 | return ret; |
| 99 | 99 | ||
| 100 | ret = flac_write_block_comment(s->pb, &s->metadata, !padding, | 100 | ret = flac_write_block_comment(s->pb, &s->metadata, !padding, |
| 101 | codec->flags & CODEC_FLAG_BITEXACT); | 101 | s->flags & AVFMT_FLAG_BITEXACT); |
| 102 | if (ret) | 102 | if (ret) |
| 103 | return ret; | 103 | return ret; |
| 104 | 104 | ||
| @@ -1160,7 +1160,7 @@ static int mkv_write_header(AVFormatContext *s) · 1159 unmodified lines | |||
| 1160 | put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 1000000); | 1160 | put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 1000000); |
| 1161 | if ((tag = av_dict_get(s->metadata, "title", NULL, 0))) | 1161 | if ((tag = av_dict_get(s->metadata, "title", NULL, 0))) |
| 1162 | put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value); | 1162 | put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value); |
| 1163 | if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) { | 1163 | if (!(s->flags & AVFMT_FLAG_BITEXACT)) { |
| 1164 | uint32_t segment_uid[4]; | 1164 | uint32_t segment_uid[4]; |
| 1165 | AVLFG lfg; | 1165 | AVLFG lfg; |
| 1166 | 1166 | ||
| @@ -3872,7 +3872,7 @@ static int mov_write_header(AVFormatContext *s) · 3871 unmodified lines | |||
| 3872 | } | 3872 | } |
| 3873 | 3873 | ||
| 3874 | for (i = 0; i < s->nb_streams; i++) | 3874 | for (i = 0; i < s->nb_streams; i++) |
| 3875 | if (s->streams[i]->codec->flags & CODEC_FLAG_BITEXACT) | 3875 | if (s->flags & AVFMT_FLAG_BITEXACT) |
| 3876 | mov->exact = 1; | 3876 | mov->exact = 1; |
| 3877 | 3877 | ||
| 3878 | /* Set the FRAGMENT flag if any of the fragmentation methods are | 3878 | /* Set the FRAGMENT flag if any of the fragmentation methods are |
| @@ -235,6 +235,11 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) · 234 unmodified lines | |||
| 235 | (ret = av_opt_set_dict2(s->priv_data, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0) | 235 | (ret = av_opt_set_dict2(s->priv_data, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0) |
| 236 | goto fail; | 236 | goto fail; |
| 237 | 237 | ||
| 238 | #if FF_API_LAVF_BITEXACT | ||
| 239 | if (s->nb_streams && s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT) | ||
| 240 | s->flags |= AVFMT_FLAG_BITEXACT; | ||
| 241 | #endif | ||
| 242 | |||
| 238 | // some sanity checks | 243 | // some sanity checks |
| 239 | if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) { | 244 | if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) { |
| 240 | av_log(s, AV_LOG_ERROR, "No streams to mux were specified\n"); | 245 | av_log(s, AV_LOG_ERROR, "No streams to mux were specified\n"); |
| @@ -340,7 +345,7 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) · 99 unmodified lines | |||
| 340 | } | 345 | } |
| 341 | 346 | ||
| 342 | /* set muxer identification string */ | 347 | /* set muxer identification string */ |
| 343 | if (s->nb_streams && !(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) { | 348 | if (!(s->flags & AVFMT_FLAG_BITEXACT)) { |
| 344 | av_dict_set(&s->metadata, "encoder", LIBAVFORMAT_IDENT, 0); | 349 | av_dict_set(&s->metadata, "encoder", LIBAVFORMAT_IDENT, 0); |
| 345 | } else { | 350 | } else { |
| 346 | av_dict_set(&s->metadata, "encoder", NULL, 0); | 351 | av_dict_set(&s->metadata, "encoder", NULL, 0); |
| @@ -618,7 +618,7 @@ static void mxf_write_identification(AVFormatContext *s) · 617 unmodified lines | |||
| 618 | mxf_write_metadata_key(pb, 0x013000); | 618 | mxf_write_metadata_key(pb, 0x013000); |
| 619 | PRINT_KEY(s, "identification key", pb->buf_ptr - 16); | 619 | PRINT_KEY(s, "identification key", pb->buf_ptr - 16); |
| 620 | 620 | ||
| 621 | version = s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT ? | 621 | version = s->flags & AVFMT_FLAG_BITEXACT ? |
| 622 | "0.0.0" : AV_STRINGIFY(LIBAVFORMAT_VERSION); | 622 | "0.0.0" : AV_STRINGIFY(LIBAVFORMAT_VERSION); |
| 623 | length = 84 + (strlen(company)+strlen(product)+strlen(version))*2; // utf-16 | 623 | length = 84 + (strlen(company)+strlen(product)+strlen(version))*2; // utf-16 |
| 624 | klv_encode_ber_length(pb, length); | 624 | klv_encode_ber_length(pb, length); |
| @@ -1777,7 +1777,7 @@ static int mxf_write_header(AVFormatContext *s) · 1152 unmodified lines | |||
| 1777 | mxf->essence_container_count = 1; | 1777 | mxf->essence_container_count = 1; |
| 1778 | } | 1778 | } |
| 1779 | 1779 | ||
| 1780 | if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) | 1780 | if (!(s->flags & AVFMT_FLAG_BITEXACT)) |
| 1781 | mxf_gen_umid(s); | 1781 | mxf_gen_umid(s); |
| 1782 | 1782 | ||
| 1783 | for (i = 0; i < s->nb_streams; i++) { | 1783 | for (i = 0; i < s->nb_streams; i++) { |
| @@ -432,7 +432,7 @@ static int ogg_write_header(AVFormatContext *s) · 431 unmodified lines | |||
| 432 | 432 | ||
| 433 | oggstream->page.stream_index = i; | 433 | oggstream->page.stream_index = i; |
| 434 | 434 | ||
| 435 | if (!(st->codec->flags & CODEC_FLAG_BITEXACT)) | 435 | if (!(s->flags & AVFMT_FLAG_BITEXACT)) |
| 436 | do { | 436 | do { |
| 437 | serial_num = av_get_random_seed(); | 437 | serial_num = av_get_random_seed(); |
| 438 | for (j = 0; j < i; j++) { | 438 | for (j = 0; j < i; j++) { |
| @@ -448,7 +448,7 @@ static int ogg_write_header(AVFormatContext *s) · 9 unmodified lines | |||
| 448 | st->priv_data = oggstream; | 448 | st->priv_data = oggstream; |
| 449 | if (st->codec->codec_id == AV_CODEC_ID_FLAC) { | 449 | if (st->codec->codec_id == AV_CODEC_ID_FLAC) { |
| 450 | int err = ogg_build_flac_headers(st->codec, oggstream, | 450 | int err = ogg_build_flac_headers(st->codec, oggstream, |
| 451 | st->codec->flags & CODEC_FLAG_BITEXACT, | 451 | s->flags & AVFMT_FLAG_BITEXACT, |
| 452 | &st->metadata); | 452 | &st->metadata); |
| 453 | if (err) { | 453 | if (err) { |
| 454 | av_log(s, AV_LOG_ERROR, "Error writing FLAC headers\n"); | 454 | av_log(s, AV_LOG_ERROR, "Error writing FLAC headers\n"); |
| @@ -457,7 +457,7 @@ static int ogg_write_header(AVFormatContext *s) · 2 unmodified lines | |||
| 457 | } | 457 | } |
| 458 | } else if (st->codec->codec_id == AV_CODEC_ID_SPEEX) { | 458 | } else if (st->codec->codec_id == AV_CODEC_ID_SPEEX) { |
| 459 | int err = ogg_build_speex_headers(st->codec, oggstream, | 459 | int err = ogg_build_speex_headers(st->codec, oggstream, |
| 460 | st->codec->flags & CODEC_FLAG_BITEXACT, | 460 | s->flags & AVFMT_FLAG_BITEXACT, |
| 461 | &st->metadata); | 461 | &st->metadata); |
| 462 | if (err) { | 462 | if (err) { |
| 463 | av_log(s, AV_LOG_ERROR, "Error writing Speex headers\n"); | 463 | av_log(s, AV_LOG_ERROR, "Error writing Speex headers\n"); |
| @@ -466,7 +466,7 @@ static int ogg_write_header(AVFormatContext *s) · 2 unmodified lines | |||
| 466 | } | 466 | } |
| 467 | } else if (st->codec->codec_id == AV_CODEC_ID_OPUS) { | 467 | } else if (st->codec->codec_id == AV_CODEC_ID_OPUS) { |
| 468 | int err = ogg_build_opus_headers(st->codec, oggstream, | 468 | int err = ogg_build_opus_headers(st->codec, oggstream, |
| 469 | st->codec->flags & CODEC_FLAG_BITEXACT, | 469 | s->flags & AVFMT_FLAG_BITEXACT, |
| 470 | &st->metadata); | 470 | &st->metadata); |
| 471 | if (err) { | 471 | if (err) { |
| 472 | av_log(s, AV_LOG_ERROR, "Error writing Opus headers\n"); | 472 | av_log(s, AV_LOG_ERROR, "Error writing Opus headers\n"); |
| @@ -487,7 +487,7 @@ static int ogg_write_header(AVFormatContext *s) · 14 unmodified lines | |||
| 487 | return -1; | 487 | return -1; |
| 488 | } | 488 | } |
| 489 | 489 | ||
| 490 | p = ogg_write_vorbiscomment(7, st->codec->flags & CODEC_FLAG_BITEXACT, | 490 | p = ogg_write_vorbiscomment(7, s->flags & AVFMT_FLAG_BITEXACT, |
| 491 | &oggstream->header_len[1], &st->metadata, | 491 | &oggstream->header_len[1], &st->metadata, |
| 492 | framing_bit); | 492 | framing_bit); |
| 493 | oggstream->header[1] = p; | 493 | oggstream->header[1] = p; |
| @@ -50,6 +50,7 @@ static const AVOption avformat_options[] = { · 49 unmodified lines | |||
| 50 | {"latm", "enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"}, | 50 | {"latm", "enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"}, |
| 51 | {"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, "fflags"}, | 51 | {"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, "fflags"}, |
| 52 | {"seek2any", "allow seeking to non-keyframes on demuxer level when supported", OFFSET(seek2any), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, D}, | 52 | {"seek2any", "allow seeking to non-keyframes on demuxer level when supported", OFFSET(seek2any), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, D}, |
| 53 | {"bitexact", "do not write random/volatile data", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_BITEXACT }, 0, 0, E, "fflags" }, | ||
| 53 | {"analyzeduration", "specify how many microseconds are analyzed to probe the input", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.i64 = 5*AV_TIME_BASE }, 0, INT_MAX, D}, | 54 | {"analyzeduration", "specify how many microseconds are analyzed to probe the input", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.i64 = 5*AV_TIME_BASE }, 0, INT_MAX, D}, |
| 54 | {"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D}, | 55 | {"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D}, |
| 55 | {"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.i64 = 1<<20 }, 0, INT_MAX, D}, | 56 | {"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.i64 = 1<<20 }, 0, INT_MAX, D}, |
| @@ -30,8 +30,8 @@ · 29 unmodified lines | |||
| 30 | #include "libavutil/version.h" | 30 | #include "libavutil/version.h" |
| 31 | 31 | ||
| 32 | #define LIBAVFORMAT_VERSION_MAJOR 55 | 32 | #define LIBAVFORMAT_VERSION_MAJOR 55 |
| 33 | #define LIBAVFORMAT_VERSION_MINOR 37 | 33 | #define LIBAVFORMAT_VERSION_MINOR 38 |
| 34 | #define LIBAVFORMAT_VERSION_MICRO 102 | 34 | #define LIBAVFORMAT_VERSION_MICRO 100 |
| 35 | 35 | ||
| 36 | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | 36 | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ |
| 37 | LIBAVFORMAT_VERSION_MINOR, \ | 37 | LIBAVFORMAT_VERSION_MINOR, \ |
| @@ -51,6 +51,9 @@ · 13 unmodified lines | |||
| 51 | #ifndef FF_API_REFERENCE_DTS | 51 | #ifndef FF_API_REFERENCE_DTS |
| 52 | #define FF_API_REFERENCE_DTS (LIBAVFORMAT_VERSION_MAJOR < 56) | 52 | #define FF_API_REFERENCE_DTS (LIBAVFORMAT_VERSION_MAJOR < 56) |
| 53 | #endif | 53 | #endif |
| 54 | #ifndef FF_API_LAVF_BITEXACT | ||
| 55 | #define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 56) | ||
| 56 | #endif | ||
| 54 | 57 | ||
| 55 | #ifndef FF_API_ALLOC_OUTPUT_CONTEXT | 58 | #ifndef FF_API_ALLOC_OUTPUT_CONTEXT |
| 56 | #define FF_API_ALLOC_OUTPUT_CONTEXT (LIBAVFORMAT_VERSION_MAJOR < 56) | 59 | #define FF_API_ALLOC_OUTPUT_CONTEXT (LIBAVFORMAT_VERSION_MAJOR < 56) |
| @@ -127,7 +127,7 @@ enc_dec_pcm(){ · 126 unmodified lines | |||
| 127 | ffmpeg -flags +bitexact -i ${encfile} -c:a pcm_${pcm_fmt} -f ${dec_fmt} - | 127 | ffmpeg -flags +bitexact -i ${encfile} -c:a pcm_${pcm_fmt} -f ${dec_fmt} - |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | FLAGS="-flags +bitexact -sws_flags +accurate_rnd+bitexact" | 130 | FLAGS="-flags +bitexact -sws_flags +accurate_rnd+bitexact -fflags +bitexact" |
| 131 | DEC_OPTS="-threads $threads -idct simple $FLAGS" | 131 | DEC_OPTS="-threads $threads -idct simple $FLAGS" |
| 132 | ENC_OPTS="-threads 1 -idct simple -dct fastint" | 132 | ENC_OPTS="-threads 1 -idct simple -dct fastint" |
| 133 | 133 | ||
| @@ -56,7 +56,7 @@ FATE_FILTER_CHANNELMAP += fate-filter-channelmap-one-int · 55 unmodified lines | |||
| 56 | fate-filter-channelmap-one-int: tests/data/filtergraphs/channelmap_one_int | 56 | fate-filter-channelmap-one-int: tests/data/filtergraphs/channelmap_one_int |
| 57 | fate-filter-channelmap-one-int: SRC = $(TARGET_PATH)/tests/data/asynth-44100-6.wav | 57 | fate-filter-channelmap-one-int: SRC = $(TARGET_PATH)/tests/data/asynth-44100-6.wav |
| 58 | fate-filter-channelmap-one-int: tests/data/asynth-44100-6.wav | 58 | fate-filter-channelmap-one-int: tests/data/asynth-44100-6.wav |
| 59 | fate-filter-channelmap-one-int: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_int -f wav -flags +bitexact | 59 | fate-filter-channelmap-one-int: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_int -f wav -fflags +bitexact |
| 60 | fate-filter-channelmap-one-int: CMP = oneline | 60 | fate-filter-channelmap-one-int: CMP = oneline |
| 61 | fate-filter-channelmap-one-int: REF = 428b8f9fac6d57147069b97335019ef5 | 61 | fate-filter-channelmap-one-int: REF = 428b8f9fac6d57147069b97335019ef5 |
| 62 | 62 | ||
| @@ -64,7 +64,7 @@ FATE_FILTER_CHANNELMAP += fate-filter-channelmap-one-str · 1 unmodified line | |||
| 64 | fate-filter-channelmap-one-str: tests/data/filtergraphs/channelmap_one_str | 64 | fate-filter-channelmap-one-str: tests/data/filtergraphs/channelmap_one_str |
| 65 | fate-filter-channelmap-one-str: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav | 65 | fate-filter-channelmap-one-str: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav |
| 66 | fate-filter-channelmap-one-str: tests/data/asynth-44100-2.wav | 66 | fate-filter-channelmap-one-str: tests/data/asynth-44100-2.wav |
| 67 | fate-filter-channelmap-one-str: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_str -f wav -flags +bitexact | 67 | fate-filter-channelmap-one-str: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_str -f wav -fflags +bitexact |
| 68 | fate-filter-channelmap-one-str: CMP = oneline | 68 | fate-filter-channelmap-one-str: CMP = oneline |
| 69 | fate-filter-channelmap-one-str: REF = e788890db6a11c2fb29d7c4229072d49 | 69 | fate-filter-channelmap-one-str: REF = e788890db6a11c2fb29d7c4229072d49 |
| 70 | 70 | ||
| @@ -181,7 +181,7 @@ FATE_VIDEO-$(call DEMDEC, MSNWC_TCP, MIMIC) += fate-mimic · 180 unmodified lines | |||
| 181 | fate-mimic: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/mimic/mimic2-womanloveffmpeg.cam | 181 | fate-mimic: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/mimic/mimic2-womanloveffmpeg.cam |
| 182 | 182 | ||
| 183 | FATE_VIDEO-$(call DEMDEC, MOV, MJPEGB) += fate-mjpegb | 183 | FATE_VIDEO-$(call DEMDEC, MOV, MJPEGB) += fate-mjpegb |
| 184 | fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(TARGET_SAMPLES)/mjpegb/mjpegb_part.mov -an | 184 | fate-mjpegb: CMD = framecrc -idct simple -fflags +bitexact -i $(TARGET_SAMPLES)/mjpegb/mjpegb_part.mov -an |
| 185 | 185 | ||
| 186 | FATE_VIDEO-$(call DEMDEC, MVI, MOTIONPIXELS) += fate-motionpixels | 186 | FATE_VIDEO-$(call DEMDEC, MVI, MOTIONPIXELS) += fate-motionpixels |
| 187 | fate-motionpixels: CMD = framecrc -i $(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111 | 187 | fate-motionpixels: CMD = framecrc -i $(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111 |
| @@ -270,7 +270,7 @@ fate-v410dec: CMD = framecrc -i $(TARGET_SAMPLES)/v410/lenav410.mov -pix_fmt yuv · 82 unmodified lines | |||
| 270 | 270 | ||
| 271 | FATE_VIDEO-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2) += fate-v410enc | 271 | FATE_VIDEO-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2) += fate-v410enc |
| 272 | fate-v410enc: $(VREF) | 272 | fate-v410enc: $(VREF) |
| 273 | fate-v410enc: CMD = md5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -flags +bitexact -vcodec v410 -f avi | 273 | fate-v410enc: CMD = md5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -fflags +bitexact -vcodec v410 -f avi |
| 274 | 274 | ||
| 275 | FATE_VIDEO-$(call DEMDEC, SIFF, VB) += fate-vb | 275 | FATE_VIDEO-$(call DEMDEC, SIFF, VB) += fate-vb |
| 276 | fate-vb: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24 -an | 276 | fate-vb: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24 -an |
| @@ -89,12 +89,12 @@ FATE_WAVPACK-$(call DEMDEC, MATROSKA, WAVPACK) += fate-wavpack-matroskamode · 88 unmodified lines | |||
| 89 | fate-wavpack-matroskamode: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/special/matroska_mode.mka -f s16le | 89 | fate-wavpack-matroskamode: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/special/matroska_mode.mka -f s16le |
| 90 | 90 | ||
| 91 | FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-mono | 91 | FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-mono |
| 92 | fate-wavpack-matroska_mux-mono: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -c copy -flags +bitexact -f matroska | 92 | fate-wavpack-matroska_mux-mono: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -c copy -fflags +bitexact -f matroska |
| 93 | fate-wavpack-matroska_mux-mono: CMP = oneline | 93 | fate-wavpack-matroska_mux-mono: CMP = oneline |
| 94 | fate-wavpack-matroska_mux-mono: REF = a2987e2e51e01a35e47e7da13eb47a35 | 94 | fate-wavpack-matroska_mux-mono: REF = a2987e2e51e01a35e47e7da13eb47a35 |
| 95 | 95 | ||
| 96 | FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-61 | 96 | FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-61 |
| 97 | fate-wavpack-matroska_mux-61: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/eva_2.22_6.1_16bit-partial.wv -c copy -flags +bitexact -f matroska | 97 | fate-wavpack-matroska_mux-61: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/eva_2.22_6.1_16bit-partial.wv -c copy -fflags +bitexact -f matroska |
| 98 | fate-wavpack-matroska_mux-61: CMP = oneline | 98 | fate-wavpack-matroska_mux-61: CMP = oneline |
| 99 | fate-wavpack-matroska_mux-61: REF = ffba4ddea1ba71f7a5901d9ed1a267be | 99 | fate-wavpack-matroska_mux-61: REF = ffba4ddea1ba71f7a5901d9ed1a267be |
| 100 | 100 | ||
| @@ -44,7 +44,7 @@ echov(){ · 43 unmodified lines | |||
| 44 | . $(dirname $0)/md5.sh | 44 | . $(dirname $0)/md5.sh |
| 45 | 45 | ||
| 46 | AVCONV_OPTS="-nostats -y -cpuflags $cpuflags" | 46 | AVCONV_OPTS="-nostats -y -cpuflags $cpuflags" |
| 47 | COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact" | 47 | COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact" |
| 48 | DEC_OPTS="$COMMON_OPTS -threads $threads" | 48 | DEC_OPTS="$COMMON_OPTS -threads $threads" |
| 49 | ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint" | 49 | ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint" |
| 50 | 50 | ||