Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Jan 2014 17:55:22 +0000 (18:55 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Jan 2014 17:55:22 +0000 (18:55 +0100)
* qatar/master:
  lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().

Conflicts:
doc/APIchanges
libavcodec/utils.c
libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/APIchanges
libavcodec/avcodec.h
libavcodec/utils.c
libavcodec/version.h

diff --cc doc/APIchanges
@@@ -15,12 -13,11 +15,17 @@@ libavutil:     2012-10-2
  
  API changes, most recent first:
  
+ 2014-01-xx - xxxxxxx - lavc 55.32.1 - avcodec.h
+   Edges are not required anymore on video buffers allocated by get_buffer2()
+   (i.e. as if the CODEC_FLAG_EMU_EDGE flag was always on). Deprecate
+   CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().
 +2014-01-19 - xxxxxxx - lavf 55.25.100 - avformat.h
 +    Add avformat_get_mov_video_tags() and avformat_get_mov_audio_tags().
 +
 +2014-01-19 - xxxxxxx - lavu 52.63.100 - rational.h
 +  Add av_make_q() function.
 +
  2013-12-xx - xxxxxxx - lavu 53.2.0 - frame.h
    Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which
    identifies AVMatrixEncoding data.
Simple merge
@@@ -1454,46 -1091,19 +1456,51 @@@ int attribute_align_arg avcodec_open2(A
              ret = AVERROR(EINVAL);
              goto free_and_end;
          }
 -#if FF_API_EMU_EDGE
 -        /* force the emu edge flag on, since it's now always active */
 -        avctx->flags |= CODEC_FLAG_EMU_EDGE;
 -#endif
 -    }
 -end:
 -    entangled_thread_counter--;
 -
 -    /* Release any user-supplied mutex. */
 -    if (lockmgr_cb) {
 -        (*lockmgr_cb)(&codec_mutex, AV_LOCK_RELEASE);
 +        if (avctx->sub_charenc) {
 +            if (avctx->codec_type != AVMEDIA_TYPE_SUBTITLE) {
 +                av_log(avctx, AV_LOG_ERROR, "Character encoding is only "
 +                       "supported with subtitles codecs\n");
 +                ret = AVERROR(EINVAL);
 +                goto free_and_end;
 +            } else if (avctx->codec_descriptor->props & AV_CODEC_PROP_BITMAP_SUB) {
 +                av_log(avctx, AV_LOG_WARNING, "Codec '%s' is bitmap-based, "
 +                       "subtitles character encoding will be ignored\n",
 +                       avctx->codec_descriptor->name);
 +                avctx->sub_charenc_mode = FF_SUB_CHARENC_MODE_DO_NOTHING;
 +            } else {
 +                /* input character encoding is set for a text based subtitle
 +                 * codec at this point */
 +                if (avctx->sub_charenc_mode == FF_SUB_CHARENC_MODE_AUTOMATIC)
 +                    avctx->sub_charenc_mode = FF_SUB_CHARENC_MODE_PRE_DECODER;
 +
 +                if (avctx->sub_charenc_mode == FF_SUB_CHARENC_MODE_PRE_DECODER) {
 +#if CONFIG_ICONV
 +                    iconv_t cd = iconv_open("UTF-8", avctx->sub_charenc);
 +                    if (cd == (iconv_t)-1) {
 +                        av_log(avctx, AV_LOG_ERROR, "Unable to open iconv context "
 +                               "with input character encoding \"%s\"\n", avctx->sub_charenc);
 +                        ret = AVERROR(errno);
 +                        goto free_and_end;
 +                    }
 +                    iconv_close(cd);
 +#else
 +                    av_log(avctx, AV_LOG_ERROR, "Character encoding subtitles "
 +                           "conversion needs a libavcodec built with iconv support "
 +                           "for this codec\n");
 +                    ret = AVERROR(ENOSYS);
 +                    goto free_and_end;
 +#endif
 +                }
 +            }
 +        }
++#if FF_API_EMU_EDGE
++        /* force the emu edge flag on, since it's now always active */
++        avctx->flags |= CODEC_FLAG_EMU_EDGE;
++#endif
      }
 +end:
 +    ff_unlock_avcodec();
      if (options) {
          av_dict_free(options);
          *options = tmp;
@@@ -29,8 -29,8 +29,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVCODEC_VERSION_MAJOR 55
 -#define LIBAVCODEC_VERSION_MINOR 32
 -#define LIBAVCODEC_VERSION_MICRO  1
 +#define LIBAVCODEC_VERSION_MINOR  48
- #define LIBAVCODEC_VERSION_MICRO 101
++#define LIBAVCODEC_VERSION_MICRO 102
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \