Merge remote-tracking branch 'cehoyos/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 3 Mar 2013 13:04:48 +0000 (14:04 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 3 Mar 2013 13:05:09 +0000 (14:05 +0100)
* cehoyos/master:
  movenc: Do not flag secondary audio and subtitle tracks as enabled.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
configure
libavcodec/h264.c
libavcodec/h264.h
libavformat/rtpdec.c
libavformat/rtpdec_vp8.c

index a3be9a8..0aaaff5 100755 (executable)
--- a/configure
+++ b/configure
@@ -1656,7 +1656,7 @@ mdct_select="fft"
 rdft_select="fft"
 mpegaudio_select="mpegaudiodsp"
 mpegaudiodsp_select="dct"
-mpegvideo_select="videodsp"
+mpegvideo_select="error_resilience videodsp"
 mpegvideoenc_select="mpegvideo"
 
 # decoders / encoders
@@ -1707,7 +1707,7 @@ h263_decoder_select="error_resilience h263_parser mpegvideo"
 h263_encoder_select="aandcttables error_resilience mpegvideoenc"
 h263i_decoder_select="h263_decoder"
 h263p_encoder_select="h263_encoder"
-h264_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel videodsp"
+h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
 huffyuv_encoder_select="huffman"
 iac_decoder_select="fft mdct sinewin"
 imc_decoder_select="fft mdct sinewin"
@@ -1868,7 +1868,7 @@ wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
 wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
 
 # parsers
-h264_parser_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel videodsp"
+h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
 mpeg4video_parser_select="error_resilience mpegvideo"
 mpegvideo_parser_select="error_resilience mpegvideo"
 vc1_parser_select="error_resilience mpegvideo"
index bb33878..659c023 100644 (file)
@@ -1270,6 +1270,7 @@ static int context_init(H264Context *h)
     h->ref_cache[1][scan8[7]  + 1] =
     h->ref_cache[1][scan8[13] + 1] = PART_NOT_AVAILABLE;
 
+    if (CONFIG_ERROR_RESILIENCE) {
     /* init ER */
     er->avctx          = h->avctx;
     er->dsp            = &h->dsp;
@@ -1309,6 +1310,7 @@ static int context_init(H264Context *h)
     er->dc_val[2] = er->dc_val[1] + c_size;
     for (i = 0; i < yc_size; i++)
         h->dc_val_base[i] = 1024;
+    }
 
     return 0;
 
@@ -1339,9 +1341,11 @@ static av_cold void common_init(H264Context *h)
 
     h->dequant_coeff_pps = -1;
 
-    h->dsp.dct_bits = 16;
-    /* needed so that IDCT permutation is known early */
-    ff_dsputil_init(&h->dsp, h->avctx);
+    if (CONFIG_ERROR_RESILIENCE) {
+        h->dsp.dct_bits = 16;
+        /* needed so that IDCT permutation is known early */
+        ff_dsputil_init(&h->dsp, h->avctx);
+    }
     ff_videodsp_init(&h->vdsp, 8);
 
     memset(h->pps.scaling_matrix4, 16, 6 * 16 * sizeof(uint8_t));
@@ -1765,9 +1769,11 @@ int ff_h264_frame_start(H264Context *h)
     h->cur_pic     = *h->cur_pic_ptr;
     h->cur_pic.f.extended_data = h->cur_pic.f.data;
 
-    ff_er_frame_start(&h->er);
-    h->er.last_pic =
-    h->er.next_pic = NULL;
+    if (CONFIG_ERROR_RESILIENCE) {
+        ff_er_frame_start(&h->er);
+        h->er.last_pic =
+        h->er.next_pic = NULL;
+    }
 
     assert(h->linesize && h->uvlinesize);
 
@@ -2777,7 +2783,8 @@ static int field_end(H264Context *h, int in_setup)
      * past end by one (callers fault) and resync_mb_y != 0
      * causes problems for the first MB line, too.
      */
-    if (!FIELD_PICTURE && h->current_slice && !h->sps.new) {
+    if (CONFIG_ERROR_RESILIENCE &&
+        !FIELD_PICTURE && h->current_slice && !h->sps.new) {
         h->er.cur_pic  = h->cur_pic_ptr;
         ff_er_frame_end(&h->er);
     }
@@ -2880,8 +2887,10 @@ static int h264_set_parameter_from_sps(H264Context *h)
             ff_h264qpel_init(&h->h264qpel, h->sps.bit_depth_luma);
             ff_h264_pred_init(&h->hpc, h->avctx->codec_id, h->sps.bit_depth_luma,
                               h->sps.chroma_format_idc);
-            h->dsp.dct_bits = h->sps.bit_depth_luma > 8 ? 32 : 16;
-            ff_dsputil_init(&h->dsp, h->avctx);
+            if (CONFIG_ERROR_RESILIENCE) {
+                h->dsp.dct_bits = h->sps.bit_depth_luma > 8 ? 32 : 16;
+                ff_dsputil_init(&h->dsp, h->avctx);
+            }
             ff_videodsp_init(&h->vdsp, h->sps.bit_depth_luma);
         } else {
             av_log(h->avctx, AV_LOG_ERROR, "Unsupported bit depth: %d\n",
@@ -3043,7 +3052,9 @@ static int h264_slice_header_init(H264Context *h, int reinit)
             H264Context *c;
             c = h->thread_context[i] = av_mallocz(sizeof(H264Context));
             c->avctx       = h->avctx;
-            c->dsp         = h->dsp;
+            if (CONFIG_ERROR_RESILIENCE) {
+                c->dsp         = h->dsp;
+            }
             c->vdsp        = h->vdsp;
             c->h264dsp     = h->h264dsp;
             c->h264qpel    = h->h264qpel;
@@ -4152,10 +4163,12 @@ static void decode_finish_row(H264Context *h)
 static void er_add_slice(H264Context *h, int startx, int starty,
                          int endx, int endy, int status)
 {
-    ERContext *er = &h->er;
+    if (CONFIG_ERROR_RESILIENCE) {
+        ERContext *er = &h->er;
 
-    er->ref_count = h->ref_count[0];
-    ff_er_add_slice(er, startx, starty, endx, endy, status);
+        er->ref_count = h->ref_count[0];
+        ff_er_add_slice(er, startx, starty, endx, endy, status);
+    }
 }
 
 static int decode_slice(struct AVCodecContext *avctx, void *arg)
@@ -4344,7 +4357,9 @@ static int execute_decode_slices(H264Context *h, int context_count)
         av_assert0(context_count > 0);
         for (i = 1; i < context_count; i++) {
             hx                    = h->thread_context[i];
-            hx->er.error_count  = 0;
+            if (CONFIG_ERROR_RESILIENCE) {
+                hx->er.error_count = 0;
+            }
             hx->x264_build        = h->x264_build;
         }
 
@@ -4357,8 +4372,10 @@ static int execute_decode_slices(H264Context *h, int context_count)
         h->mb_y              = hx->mb_y;
         h->droppable         = hx->droppable;
         h->picture_structure = hx->picture_structure;
-        for (i = 1; i < context_count; i++)
-            h->er.error_count += h->thread_context[i]->er.error_count;
+        if (CONFIG_ERROR_RESILIENCE) {
+            for (i = 1; i < context_count; i++)
+                h->er.error_count += h->thread_context[i]->er.error_count;
+        }
     }
 
     return 0;
@@ -4825,8 +4842,10 @@ not_extra:
 
     assert(pict->data[0] || !*got_frame);
 
-    ff_print_debug_info2(h->avctx, pict, h->er.mbskip_table, h->visualization_buffer, &h->low_delay,
-                         h->mb_width, h->mb_height, h->mb_stride, 1);
+    if (CONFIG_MPEGVIDEO) {
+        ff_print_debug_info2(h->avctx, pict, h->er.mbskip_table, h->visualization_buffer, &h->low_delay,
+                             h->mb_width, h->mb_height, h->mb_stride, 1);
+    }
 
     return get_consumed_bytes(buf_index, buf_size);
 }
index d391b22..03be472 100644 (file)
@@ -256,7 +256,6 @@ typedef struct MMCO {
  */
 typedef struct H264Context {
     AVCodecContext *avctx;
-    DSPContext       dsp;
     VideoDSPContext vdsp;
     H264DSPContext h264dsp;
     H264ChromaContext h264chroma;
@@ -264,6 +263,7 @@ typedef struct H264Context {
     MotionEstContext me;
     ParseContext parse_context;
     GetBitContext gb;
+    DSPContext       dsp;
     ERContext er;
 
     Picture *DPB;
index a1f1701..3d74f59 100644 (file)
@@ -424,7 +424,7 @@ int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd,
     AVIOContext *pb;
     uint8_t *buf;
     int64_t now;
-    uint16_t first_missing, missing_mask;
+    uint16_t first_missing = 0, missing_mask = 0;
 
     if (!fd && !avio)
         return -1;
index 623d359..b4b4f22 100644 (file)
@@ -82,7 +82,7 @@ static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
         keyidx_present = 0;
     int pictureid = -1, pictureid_mask = 0;
     int returned_old_frame = 0;
-    uint32_t old_timestamp;
+    uint32_t old_timestamp = 0;
 
     if (!buf) {
         if (vp8->data) {