Browse Source

Merge remote-tracking branch 'qatar/master'

* qatar/master:
  swscale: Readd #define _SVID_SOURCE
  Fix av_get_channel_layout_string() for positions >31
  configure: Store vda lib flags in extralibs instead of ldflags
  Make channel layout masks unsigned
  dca: ARMv6 optimised decode_blockcode()
  nullenc: drop AVFMT_RAWPICTURE from the flags
  frame-mt: return consumed packet size in ff_thread_decode_frame
  aacdec: add more fate tests covering SBR and PS
  MK(BE)TAG: avoid undefined shifts

Conflicts:
	configure
	libavcodec/arm/dca.h
	libavcodec/dca.c
	libavcodec/mlp_parser.c
	libavcodec/version.h
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/defaults.c
	libavutil/audioconvert.c
	libavutil/avutil.h
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer 13 years ago
parent
commit
022f8d27dd

+ 1 - 1
configure

@@ -2999,7 +2999,7 @@ disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
 if ! disabled vda; then
     if check_header VideoDecodeAcceleration/VDADecoder.h; then
         enable vda
-        add_ldflags -framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore
+        add_extralibs -framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore
     fi
 fi
 

+ 1 - 1
libavcodec/aac_ac3_parser.h

@@ -48,7 +48,7 @@ typedef struct AACAC3ParseContext {
     int sample_rate;
     int bit_rate;
     int samples;
-    int64_t channel_layout;
+    uint64_t channel_layout;
     int service_type;
 
     int remaining_size;

+ 1 - 1
libavcodec/aacdectab.h

@@ -90,7 +90,7 @@ static const uint8_t aac_channel_layout_map[7][5][2] = {
     { { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 2 }, { TYPE_CPE, 1 }, },
 };
 
-static const int64_t aac_channel_layout[8] = {
+static const uint64_t aac_channel_layout[8] = {
     AV_CH_LAYOUT_MONO,
     AV_CH_LAYOUT_STEREO,
     AV_CH_LAYOUT_SURROUND,

+ 1 - 1
libavcodec/ac3.h

@@ -120,7 +120,7 @@ typedef struct {
     uint32_t bit_rate;
     uint8_t channels;
     uint16_t frame_size;
-    int64_t channel_layout;
+    uint64_t channel_layout;
     /** @} */
 } AC3HeaderInfo;
 

+ 3 - 3
libavcodec/ac3enc.c

@@ -77,7 +77,7 @@ static uint8_t exponent_group_tab[2][3][256];
 /**
  * List of supported channel layouts.
  */
-const int64_t ff_ac3_channel_layouts[19] = {
+const uint64_t ff_ac3_channel_layouts[19] = {
      AV_CH_LAYOUT_MONO,
      AV_CH_LAYOUT_STEREO,
      AV_CH_LAYOUT_2_1,
@@ -2060,13 +2060,13 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
  * Set channel information during initialization.
  */
 static av_cold int set_channel_info(AC3EncodeContext *s, int channels,
-                                    int64_t *channel_layout)
+                                    uint64_t *channel_layout)
 {
     int ch_layout;
 
     if (channels < 1 || channels > AC3_MAX_CHANNELS)
         return AVERROR(EINVAL);
-    if ((uint64_t)*channel_layout > 0x7FF)
+    if (*channel_layout > 0x7FF)
         return AVERROR(EINVAL);
     ch_layout = *channel_layout;
     if (!ch_layout)

+ 1 - 1
libavcodec/ac3enc.h

@@ -258,7 +258,7 @@ typedef struct AC3EncodeContext {
 } AC3EncodeContext;
 
 
-extern const int64_t ff_ac3_channel_layouts[19];
+extern const uint64_t ff_ac3_channel_layouts[19];
 
 int ff_ac3_encode_init(AVCodecContext *avctx);
 

+ 43 - 27
libavcodec/arm/dca.h

@@ -27,38 +27,54 @@
 
 #if HAVE_ARMV6 && HAVE_INLINE_ASM
 
-#define decode_blockcode decode_blockcode
-static inline int decode_blockcode(int code, int levels, int *values)
+#define decode_blockcodes decode_blockcodes
+static inline int decode_blockcodes(int code1, int code2, int levels,
+                                    int *values)
 {
-    int v0, v1, v2, v3;
+    int v0, v1, v2, v3, v4, v5;
 
-    __asm__ ("smmul   %4, %8, %11           \n"
-             "smlabb  %8, %4, %10, %8       \n"
-             "smmul   %5, %4, %11           \n"
-             "sub     %8, %8, %9, lsr #1    \n"
-             "smlabb  %4, %5, %10, %4       \n"
-             "smmul   %6, %5, %11           \n"
-             "str     %8, %0                \n"
-             "sub     %4, %4, %9, lsr #1    \n"
-             "smlabb  %5, %6, %10, %5       \n"
-             "smmul   %7, %6, %11           \n"
-             "str     %4, %1                \n"
-             "sub     %5, %5, %9, lsr #1    \n"
-             "smlabb  %6, %7, %10, %6       \n"
-             "cmp     %7, #0                \n"
-             "str     %5, %2                \n"
-             "sub     %6, %6, %9, lsr #1    \n"
-             "it      eq                    \n"
-             "mvneq   %7, #0                \n"
-             "str     %6, %3                \n"
+    __asm__ ("smmul   %8,  %14, %18           \n"
+             "smmul   %11, %15, %18           \n"
+             "smlabb  %14, %8,  %17, %14      \n"
+             "smlabb  %15, %11, %17, %15      \n"
+             "smmul   %9,  %8,  %18           \n"
+             "smmul   %12, %11, %18           \n"
+             "sub     %14, %14, %16, lsr #1   \n"
+             "sub     %15, %15, %16, lsr #1   \n"
+             "smlabb  %8,  %9,  %17, %8       \n"
+             "smlabb  %11, %12, %17, %11      \n"
+             "smmul   %10, %9,  %18           \n"
+             "smmul   %13, %12, %18           \n"
+             "str     %14, %0                 \n"
+             "str     %15, %4                 \n"
+             "sub     %8,  %8,  %16, lsr #1   \n"
+             "sub     %11, %11, %16, lsr #1   \n"
+             "smlabb  %9,  %10, %17, %9       \n"
+             "smlabb  %12, %13, %17, %12      \n"
+             "smmul   %14, %10, %18           \n"
+             "smmul   %15, %13, %18           \n"
+             "str     %8,  %1                 \n"
+             "str     %11, %5                 \n"
+             "sub     %9,  %9,  %16, lsr #1   \n"
+             "sub     %12, %12, %16, lsr #1   \n"
+             "smlabb  %10, %14, %17, %10      \n"
+             "smlabb  %13, %15, %17, %13      \n"
+             "str     %9,  %2                 \n"
+             "str     %12, %6                 \n"
+             "sub     %10, %10, %16, lsr #1   \n"
+             "sub     %13, %13, %16, lsr #1   \n"
+             "str     %10, %3                 \n"
+             "str     %13, %7                 \n"
              : "=m"(values[0]), "=m"(values[1]),
                "=m"(values[2]), "=m"(values[3]),
-               "=&r"(v0), "=&r"(v1), "=&r"(v2), "=&r"(v3),
-               "+&r"(code)
-             : "r"(levels - 1), "r"(-levels), "r"(ff_inverse[levels])
-             : "cc");
+               "=m"(values[4]), "=m"(values[5]),
+               "=m"(values[6]), "=m"(values[7]),
+               "=&r"(v0), "=&r"(v1), "=&r"(v2),
+               "=&r"(v3), "=&r"(v4), "=&r"(v5),
+               "+&r"(code1), "+&r"(code2)
+             : "r"(levels - 1), "r"(-levels), "r"(ff_inverse[levels]));
 
-    return v3;
+    return code1 | code2;
 }
 
 #endif

+ 1 - 1
libavcodec/audioconvert.c

@@ -48,7 +48,7 @@ void avcodec_sample_fmt_string (char *buf, int buf_size, int sample_fmt)
 }
 #endif
 
-int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name)
+uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name)
 {
     switch(nb_channels) {
     case 1: return AV_CH_LAYOUT_MONO;

+ 1 - 1
libavcodec/audioconvert.h

@@ -80,7 +80,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout);
  * @param fmt_name Format name, or NULL if unknown
  * @return Channel layout mask
  */
-int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
+uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
 
 struct AVAudioConvert;
 typedef struct AVAudioConvert AVAudioConvert;

+ 3 - 3
libavcodec/avcodec.h

@@ -2758,14 +2758,14 @@ typedef struct AVCodecContext {
      * - encoding: set by user.
      * - decoding: set by user, may be overwritten by libavcodec.
      */
-    int64_t channel_layout;
+    uint64_t channel_layout;
 
     /**
      * Request decoder to use this channel layout if it can (0 for default)
      * - encoding: unused
      * - decoding: Set by user.
      */
-    int64_t request_channel_layout;
+    uint64_t request_channel_layout;
 
     /**
      * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.
@@ -3122,7 +3122,7 @@ typedef struct AVCodec {
     const char *long_name;
     const int *supported_samplerates;       ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
     const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
-    const int64_t *channel_layouts;         ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
+    const uint64_t *channel_layouts;         ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
     uint8_t max_lowres;                     ///< maximum value for lowres supported by the decoder
     const AVClass *priv_class;              ///< AVClass for the private context
     const AVProfile *profiles;              ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}

Some files were not shown because too many files changed in this diff