History

lavf: add AVFMT_FLAG_BITEXACT.

Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's codec context. Using codec options inside lavf is fragile and can easily break when the muxing codec context is not the encoding context.

Anton Khirnov committed 12 years ago

Commit 0c1959b1 parent b70d7a415 files · +40 −20Browse files

Unified · Split

15 files
  1. doc/APIchanges +4 −0
  2. libavformat/avformat.h +7 −0
  3. libavformat/flacenc.c +1 −1
  4. libavformat/matroskaenc.c +1 −1
  5. libavformat/movenc.c +1 −1
  6. libavformat/mux.c +6 −1
  7. libavformat/mxfenc.c +2 −2
  8. libavformat/oggenc.c +5 −5
  9. libavformat/options_table.h +1 −0
  10. libavformat/version.h +4 −1
  11. tests/fate-run.sh +1 −1
  12. tests/fate/filter-audio.mak +2 −2
  13. tests/fate/video.mak +2 −2
  14. tests/fate/wavpack.mak +2 −2
  15. tests/regression-funcs.sh +1 −1
doc/APIchanges+4−0
@@ -13,6 +13,10 @@ libavutil: 2013-12-xx · 12 unmodified lines
13 13
14API changes, most recent first:14API changes, most recent first:
15 15
162014-05-xx - xxxxxxx - lavf 55.17.0 - avformat.h
17 Add AVMFT_FLAG_BITEXACT flag. Muxers now use it instead of checking
18 CODEC_FLAG_BITEXACT on the first stream.
19
162014-xx-xx - xxxxxxx - lavu 53.14.0 - pixfmt.h202014-xx-xx - xxxxxxx - lavu 53.14.0 - pixfmt.h
17 Add AV_PIX_FMT_VDA for new-style VDA acceleration.21 Add AV_PIX_FMT_VDA for new-style VDA acceleration.
18 22
libavformat/avformat.h+7−0
@@ -1004,6 +1004,13 @@ typedef struct AVFormatContext { · 1003 unmodified lines
1004#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it.1004#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it.
1005#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted1005#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted
1006#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet.1006#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet.
1007/**
1008 * When muxing, try to avoid writing any random/volatile data to the output.
1009 * This includes any random IDs, real-time timestamps/dates, muxer version, etc.
1010 *
1011 * This flag is mainly intended for testing.
1012 */
1013#define AVFMT_FLAG_BITEXACT 0x0400
1007 1014
1008 /**1015 /**
1009 * Maximum size of the data read from input for determining1016 * Maximum size of the data read from input for determining
libavformat/flacenc.c+1−1
@@ -84,7 +84,7 @@ static int flac_write_header(struct AVFormatContext *s) · 83 unmodified lines
84 return ret;84 return ret;
85 85
86 ret = flac_write_block_comment(s->pb, &s->metadata, 0,86 ret = flac_write_block_comment(s->pb, &s->metadata, 0,
87 codec->flags & CODEC_FLAG_BITEXACT);87 s->flags & AVFMT_FLAG_BITEXACT);
88 if (ret)88 if (ret)
89 return ret;89 return ret;
90 90
libavformat/matroskaenc.c+1−1
@@ -970,7 +970,7 @@ static int mkv_write_header(AVFormatContext *s) · 969 unmodified lines
970 put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 1000000);970 put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 1000000);
971 if ((tag = av_dict_get(s->metadata, "title", NULL, 0)))971 if ((tag = av_dict_get(s->metadata, "title", NULL, 0)))
972 put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value);972 put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value);
973 if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) {973 if (!(s->flags & AVFMT_FLAG_BITEXACT)) {
974 uint32_t segment_uid[4];974 uint32_t segment_uid[4];
975 AVLFG lfg;975 AVLFG lfg;
976 976
libavformat/movenc.c+1−1
@@ -2024,7 +2024,7 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov, · 2023 unmodified lines
2024 uint8_t *buf;2024 uint8_t *buf;
2025 2025
2026 for (i = 0; i < s->nb_streams; i++)2026 for (i = 0; i < s->nb_streams; i++)
2027 if (mov->tracks[i].enc->flags & CODEC_FLAG_BITEXACT) {2027 if (s->flags & AVFMT_FLAG_BITEXACT) {
2028 return 0;2028 return 0;
2029 }2029 }
2030 2030
libavformat/mux.c+6−1
@@ -149,6 +149,11 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) · 148 unmodified lines
149 if ((ret = av_opt_set_dict(s, &tmp)) < 0)149 if ((ret = av_opt_set_dict(s, &tmp)) < 0)
150 goto fail;150 goto fail;
151 151
152#if FF_API_LAVF_BITEXACT
153 if (s->nb_streams && s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)
154 s->flags |= AVFMT_FLAG_BITEXACT;
155#endif
156
152 // some sanity checks157 // some sanity checks
153 if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) {158 if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) {
154 av_log(s, AV_LOG_ERROR, "no streams\n");159 av_log(s, AV_LOG_ERROR, "no streams\n");
@@ -252,7 +257,7 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) · 97 unmodified lines
252 }257 }
253 258
254 /* set muxer identification string */259 /* set muxer identification string */
255 if (s->nb_streams && !(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) {260 if (!(s->flags & AVFMT_FLAG_BITEXACT)) {
256 av_dict_set(&s->metadata, "encoder", LIBAVFORMAT_IDENT, 0);261 av_dict_set(&s->metadata, "encoder", LIBAVFORMAT_IDENT, 0);
257 }262 }
258 263
libavformat/mxfenc.c+2−2
@@ -507,7 +507,7 @@ static void mxf_write_identification(AVFormatContext *s) · 506 unmodified lines
507 mxf_write_metadata_key(pb, 0x013000);507 mxf_write_metadata_key(pb, 0x013000);
508 PRINT_KEY(s, "identification key", pb->buf_ptr - 16);508 PRINT_KEY(s, "identification key", pb->buf_ptr - 16);
509 509
510 version = s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT ?510 version = s->flags & AVFMT_FLAG_BITEXACT ?
511 "0.0.0" : AV_STRINGIFY(LIBAVFORMAT_VERSION);511 "0.0.0" : AV_STRINGIFY(LIBAVFORMAT_VERSION);
512 length = 84 + (strlen(company)+strlen(product)+strlen(version))*2; // utf-16512 length = 84 + (strlen(company)+strlen(product)+strlen(version))*2; // utf-16
513 klv_encode_ber_length(pb, length);513 klv_encode_ber_length(pb, length);
@@ -1512,7 +1512,7 @@ static int mxf_write_header(AVFormatContext *s) · 998 unmodified lines
1512 mxf->essence_container_count = 1;1512 mxf->essence_container_count = 1;
1513 }1513 }
1514 1514
1515 if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT))1515 if (!(s->flags & AVFMT_FLAG_BITEXACT))
1516 mxf_gen_umid(s);1516 mxf_gen_umid(s);
1517 1517
1518 for (i = 0; i < s->nb_streams; i++) {1518 for (i = 0; i < s->nb_streams; i++) {
libavformat/oggenc.c+5−5
@@ -425,7 +425,7 @@ static int ogg_write_header(AVFormatContext *s) · 424 unmodified lines
425 oggstream = av_mallocz(sizeof(*oggstream));425 oggstream = av_mallocz(sizeof(*oggstream));
426 oggstream->page.stream_index = i;426 oggstream->page.stream_index = i;
427 427
428 if (!(st->codec->flags & CODEC_FLAG_BITEXACT))428 if (!(s->flags & AVFMT_FLAG_BITEXACT))
429 do {429 do {
430 serial_num = av_get_random_seed();430 serial_num = av_get_random_seed();
431 for (j = 0; j < i; j++) {431 for (j = 0; j < i; j++) {
@@ -439,7 +439,7 @@ static int ogg_write_header(AVFormatContext *s) · 7 unmodified lines
439 st->priv_data = oggstream;439 st->priv_data = oggstream;
440 if (st->codec->codec_id == AV_CODEC_ID_FLAC) {440 if (st->codec->codec_id == AV_CODEC_ID_FLAC) {
441 int err = ogg_build_flac_headers(st->codec, oggstream,441 int err = ogg_build_flac_headers(st->codec, oggstream,
442 st->codec->flags & CODEC_FLAG_BITEXACT,442 s->flags & AVFMT_FLAG_BITEXACT,
443 &s->metadata);443 &s->metadata);
444 if (err) {444 if (err) {
445 av_log(s, AV_LOG_ERROR, "Error writing FLAC headers\n");445 av_log(s, AV_LOG_ERROR, "Error writing FLAC headers\n");
@@ -448,7 +448,7 @@ static int ogg_write_header(AVFormatContext *s) · 2 unmodified lines
448 }448 }
449 } else if (st->codec->codec_id == AV_CODEC_ID_SPEEX) {449 } else if (st->codec->codec_id == AV_CODEC_ID_SPEEX) {
450 int err = ogg_build_speex_headers(st->codec, oggstream,450 int err = ogg_build_speex_headers(st->codec, oggstream,
451 st->codec->flags & CODEC_FLAG_BITEXACT,451 s->flags & AVFMT_FLAG_BITEXACT,
452 &s->metadata);452 &s->metadata);
453 if (err) {453 if (err) {
454 av_log(s, AV_LOG_ERROR, "Error writing Speex headers\n");454 av_log(s, AV_LOG_ERROR, "Error writing Speex 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_OPUS) {458 } else if (st->codec->codec_id == AV_CODEC_ID_OPUS) {
459 int err = ogg_build_opus_headers(st->codec, oggstream,459 int err = ogg_build_opus_headers(st->codec, oggstream,
460 st->codec->flags & CODEC_FLAG_BITEXACT,460 s->flags & AVFMT_FLAG_BITEXACT,
461 &s->metadata);461 &s->metadata);
462 if (err) {462 if (err) {
463 av_log(s, AV_LOG_ERROR, "Error writing Opus headers\n");463 av_log(s, AV_LOG_ERROR, "Error writing Opus headers\n");
@@ -478,7 +478,7 @@ static int ogg_write_header(AVFormatContext *s) · 14 unmodified lines
478 return -1;478 return -1;
479 }479 }
480 480
481 p = ogg_write_vorbiscomment(7, st->codec->flags & CODEC_FLAG_BITEXACT,481 p = ogg_write_vorbiscomment(7, s->flags & AVFMT_FLAG_BITEXACT,
482 &oggstream->header_len[1], &s->metadata,482 &oggstream->header_len[1], &s->metadata,
483 framing_bit);483 framing_bit);
484 oggstream->header[1] = p;484 oggstream->header[1] = p;
libavformat/options_table.h+1−0
@@ -42,6 +42,7 @@ static const AVOption avformat_options[] = { · 41 unmodified lines
42{"igndts", "ignore dts", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_IGNDTS }, INT_MIN, INT_MAX, D, "fflags"},42{"igndts", "ignore dts", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_IGNDTS }, INT_MIN, INT_MAX, D, "fflags"},
43{"discardcorrupt", "discard corrupted frames", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D, "fflags"},43{"discardcorrupt", "discard corrupted frames", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D, "fflags"},
44{"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, "fflags"},44{"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, "fflags"},
45{"bitexact", "do not write random/volatile data", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_BITEXACT }, 0, 0, E, "fflags" },
45{"analyzeduration", "how many microseconds are analyzed to estimate duration", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.i64 = 5*AV_TIME_BASE }, 0, INT_MAX, D},46{"analyzeduration", "how many microseconds are analyzed to estimate duration", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.i64 = 5*AV_TIME_BASE }, 0, INT_MAX, D},
46{"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D},47{"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D},
47{"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.i64 = 1<<20 }, 0, INT_MAX, D},48{"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.i64 = 1<<20 }, 0, INT_MAX, D},
libavformat/version.h+4−1
@@ -30,7 +30,7 @@ · 29 unmodified lines
30#include "libavutil/version.h"30#include "libavutil/version.h"
31 31
32#define LIBAVFORMAT_VERSION_MAJOR 5532#define LIBAVFORMAT_VERSION_MAJOR 55
33#define LIBAVFORMAT_VERSION_MINOR 1633#define LIBAVFORMAT_VERSION_MINOR 17
34#define LIBAVFORMAT_VERSION_MICRO 034#define LIBAVFORMAT_VERSION_MICRO 0
35 35
36#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \36#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
@@ -51,5 +51,8 @@ · 14 unmodified lines
51#ifndef FF_API_REFERENCE_DTS51#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#endif53#endif
54#ifndef FF_API_LAVF_BITEXACT
55#define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 56)
56#endif
54 57
55#endif /* AVFORMAT_VERSION_H */58#endif /* AVFORMAT_VERSION_H */
tests/fate-run.sh+1−1
@@ -118,7 +118,7 @@ enc_dec_pcm(){ · 117 unmodified lines
118 avconv -f $out_fmt -i ${encfile} -c:a pcm_${pcm_fmt} -f ${dec_fmt} -118 avconv -f $out_fmt -i ${encfile} -c:a pcm_${pcm_fmt} -f ${dec_fmt} -
119}119}
120 120
121FLAGS="-flags +bitexact -sws_flags +accurate_rnd+bitexact"121FLAGS="-flags +bitexact -sws_flags +accurate_rnd+bitexact -fflags +bitexact"
122DEC_OPTS="-threads $threads -idct simple $FLAGS"122DEC_OPTS="-threads $threads -idct simple $FLAGS"
123ENC_OPTS="-threads 1 -idct simple -dct fastint"123ENC_OPTS="-threads 1 -idct simple -dct fastint"
124 124
tests/fate/filter-audio.mak+2−2
@@ -45,7 +45,7 @@ FATE_FILTER_CHANNELMAP += fate-filter-channelmap-one-int · 44 unmodified lines
45fate-filter-channelmap-one-int: tests/data/filtergraphs/channelmap_one_int45fate-filter-channelmap-one-int: tests/data/filtergraphs/channelmap_one_int
46fate-filter-channelmap-one-int: SRC = $(TARGET_PATH)/tests/data/asynth-44100-6.wav46fate-filter-channelmap-one-int: SRC = $(TARGET_PATH)/tests/data/asynth-44100-6.wav
47fate-filter-channelmap-one-int: tests/data/asynth-44100-6.wav47fate-filter-channelmap-one-int: tests/data/asynth-44100-6.wav
48fate-filter-channelmap-one-int: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_int -f wav -flags +bitexact48fate-filter-channelmap-one-int: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_int -f wav -fflags +bitexact
49fate-filter-channelmap-one-int: CMP = oneline49fate-filter-channelmap-one-int: CMP = oneline
50fate-filter-channelmap-one-int: REF = 21f1977c4f9705e2057083f84764e68550fate-filter-channelmap-one-int: REF = 21f1977c4f9705e2057083f84764e685
51 51
@@ -53,7 +53,7 @@ FATE_FILTER_CHANNELMAP += fate-filter-channelmap-one-str · 1 unmodified line
53fate-filter-channelmap-one-str: tests/data/filtergraphs/channelmap_one_str53fate-filter-channelmap-one-str: tests/data/filtergraphs/channelmap_one_str
54fate-filter-channelmap-one-str: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav54fate-filter-channelmap-one-str: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
55fate-filter-channelmap-one-str: tests/data/asynth-44100-2.wav55fate-filter-channelmap-one-str: tests/data/asynth-44100-2.wav
56fate-filter-channelmap-one-str: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_str -f wav -flags +bitexact56fate-filter-channelmap-one-str: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_str -f wav -fflags +bitexact
57fate-filter-channelmap-one-str: CMP = oneline57fate-filter-channelmap-one-str: CMP = oneline
58fate-filter-channelmap-one-str: REF = 9fe9bc452282dfd94fd80e9491607a0c58fate-filter-channelmap-one-str: REF = 9fe9bc452282dfd94fd80e9491607a0c
59 59
tests/fate/video.mak+2−2
@@ -176,7 +176,7 @@ FATE_SAMPLES_AVCONV-$(call DEMDEC, MSNWC_TCP, MIMIC) += fate-mimic · 175 unmodified lines
176fate-mimic: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/mimic/mimic2-womanloveffmpeg.cam176fate-mimic: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/mimic/mimic2-womanloveffmpeg.cam
177 177
178FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, MJPEGB) += fate-mjpegb178FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, MJPEGB) += fate-mjpegb
179fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(TARGET_SAMPLES)/mjpegb/mjpegb_part.mov -an179fate-mjpegb: CMD = framecrc -idct simple -fflags +bitexact -i $(TARGET_SAMPLES)/mjpegb/mjpegb_part.mov -an
180 180
181FATE_SAMPLES_AVCONV-$(call DEMDEC, MVI, MOTIONPIXELS) += fate-motionpixels181FATE_SAMPLES_AVCONV-$(call DEMDEC, MVI, MOTIONPIXELS) += fate-motionpixels
182fate-motionpixels: CMD = framecrc -i $(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111182fate-motionpixels: CMD = framecrc -i $(TARGET_SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111
@@ -265,7 +265,7 @@ fate-v410dec: CMD = framecrc -i $(TARGET_SAMPLES)/v410/lenav410.mov -pix_fmt yuv · 82 unmodified lines
265 265
266FATE_SAMPLES_AVCONV-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2) += fate-v410enc266FATE_SAMPLES_AVCONV-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2) += fate-v410enc
267fate-v410enc: $(VREF)267fate-v410enc: $(VREF)
268fate-v410enc: CMD = md5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -flags +bitexact -vcodec v410 -f avi268fate-v410enc: CMD = md5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -fflags +bitexact -vcodec v410 -f avi
269 269
270FATE_SAMPLES_AVCONV-$(call DEMDEC, SIFF, VB) += fate-vb270FATE_SAMPLES_AVCONV-$(call DEMDEC, SIFF, VB) += fate-vb
271fate-vb: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24 -an271fate-vb: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24 -an
tests/fate/wavpack.mak+2−2
@@ -89,12 +89,12 @@ FATE_WAVPACK-$(call DEMDEC, MATROSKA, WAVPACK) += fate-wavpack-matroskamode · 88 unmodified lines
89fate-wavpack-matroskamode: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/special/matroska_mode.mka -f s16le89fate-wavpack-matroskamode: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/special/matroska_mode.mka -f s16le
90 90
91FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-mono91FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-mono
92fate-wavpack-matroska_mux-mono: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -c copy -flags +bitexact -f matroska92fate-wavpack-matroska_mux-mono: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -c copy -fflags +bitexact -f matroska
93fate-wavpack-matroska_mux-mono: CMP = oneline93fate-wavpack-matroska_mux-mono: CMP = oneline
94fate-wavpack-matroska_mux-mono: REF = 6bd769b3f0e9d7fa6261c3b73a53eb7d94fate-wavpack-matroska_mux-mono: REF = 6bd769b3f0e9d7fa6261c3b73a53eb7d
95 95
96FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-6196FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-61
97fate-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 matroska97fate-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
98fate-wavpack-matroska_mux-61: CMP = oneline98fate-wavpack-matroska_mux-61: CMP = oneline
99fate-wavpack-matroska_mux-61: REF = 2d2f1e7f81a8b1983fcffc7f24de8a1199fate-wavpack-matroska_mux-61: REF = 2d2f1e7f81a8b1983fcffc7f24de8a11
100 100
tests/regression-funcs.sh+1−1
@@ -41,7 +41,7 @@ echov(){ · 40 unmodified lines
41. $(dirname $0)/md5.sh41. $(dirname $0)/md5.sh
42 42
43AVCONV_OPTS="-nostats -y -cpuflags $cpuflags"43AVCONV_OPTS="-nostats -y -cpuflags $cpuflags"
44COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact"44COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact -fflags +bitexact"
45DEC_OPTS="$COMMON_OPTS -threads $threads"45DEC_OPTS="$COMMON_OPTS -threads $threads"
46ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint"46ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint"
47 47

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t