aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-03-07 11:50:17 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-03-07 11:50:17 +0100
commit8cc5481d51bf746d9d43348af711dbf201bf336a (patch)
tree0a4102445621aecf2e34d8a6ee853e97d73525eb /libavcodec
parent47f1af47b6cb763452c5bab3704ca965fccad25b (diff)
parent54b298fe5650c124c29a8283cfd05024ac409d3a (diff)
downloadffmpeg-8cc5481d51bf746d9d43348af711dbf201bf336a.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: lavc: Deprecate the deinterlace functions in libavcodec h264: Integrate draw_horiz_band into ff_h264_draw_horiz_band Conflicts: configure ffmpeg_opt.c libavcodec/avcodec.h libavcodec/h264.c libavcodec/imgconvert.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h4
-rw-r--r--libavcodec/h264.c36
-rw-r--r--libavcodec/version.h2
3 files changed, 19 insertions, 23 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index c27a603a9b..c4db4d761f 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -4616,14 +4616,16 @@ int avpicture_layout(const AVPicture* src, enum AVPixelFormat pix_fmt,
*/
int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
+#if FF_API_DEINTERLACE
/**
* deinterlace - if not supported return -1
*
- * @deprecated - use yadif (in lavfilter) instead
+ * @deprecated - use yadif (in libavfilter) instead
*/
attribute_deprecated
int avpicture_deinterlace(AVPicture *dst, const AVPicture *src,
enum AVPixelFormat pix_fmt, int width, int height);
+#endif
/**
* Copy image src to dst. Wraps av_image_copy().
*/
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 2960bae174..3a83b4b031 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -143,28 +143,30 @@ static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type,
ff_h264_hl_decode_mb(h);
}
-static void draw_horiz_band(AVCodecContext *avctx, Picture *cur,
- Picture *last, int y, int h, int picture_structure,
- int first_field, int low_delay)
+void ff_h264_draw_horiz_band(H264Context *h, int y, int height)
{
+ AVCodecContext *avctx = h->avctx;
+ Picture *cur = &h->cur_pic;
+ Picture *last = h->ref_list[0][0].f.data[0] ? &h->ref_list[0][0] : NULL;
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
int vshift = desc->log2_chroma_h;
- const int field_pic = picture_structure != PICT_FRAME;
- if(field_pic){
- h <<= 1;
+ const int field_pic = h->picture_structure != PICT_FRAME;
+ if (field_pic) {
+ height <<= 1;
y <<= 1;
}
- h = FFMIN(h, avctx->height - y);
+ height = FFMIN(height, avctx->height - y);
- if(field_pic && first_field && !(avctx->slice_flags&SLICE_FLAG_ALLOW_FIELD)) return;
+ if (field_pic && h->first_field && !(avctx->slice_flags & SLICE_FLAG_ALLOW_FIELD))
+ return;
if (avctx->draw_horiz_band) {
AVFrame *src;
int offset[AV_NUM_DATA_POINTERS];
int i;
- if(cur->f.pict_type == AV_PICTURE_TYPE_B || low_delay ||
+ if (cur->f.pict_type == AV_PICTURE_TYPE_B || h->low_delay ||
(avctx->slice_flags & SLICE_FLAG_CODED_ORDER))
src = &cur->f;
else if (last)
@@ -172,27 +174,19 @@ static void draw_horiz_band(AVCodecContext *avctx, Picture *cur,
else
return;
- offset[0]= y * src->linesize[0];
- offset[1]=
- offset[2]= (y >> vshift) * src->linesize[1];
+ offset[0] = y * src->linesize[0];
+ offset[1] =
+ offset[2] = (y >> vshift) * src->linesize[1];
for (i = 3; i < AV_NUM_DATA_POINTERS; i++)
offset[i] = 0;
emms_c();
avctx->draw_horiz_band(avctx, src, offset,
- y, picture_structure, h);
+ y, h->picture_structure, height);
}
}
-void ff_h264_draw_horiz_band(H264Context *h, int y, int height)
-{
- draw_horiz_band(h->avctx, &h->cur_pic,
- h->ref_list[0][0].f.data[0] ? &h->ref_list[0][0] : NULL,
- y, height, h->picture_structure, h->first_field,
- h->low_delay);
-}
-
static void free_frame_buffer(H264Context *h, Picture *pic)
{
pic->period_since_free = 0;
diff --git a/libavcodec/version.h b/libavcodec/version.h
index f2cc5d19e2..67fdc25215 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -107,7 +107,7 @@
#define FF_API_IDCT (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_DEINTERLACE
-#define FF_API_DEINTERLACE (LIBAVCODEC_VERSION_MAJOR < 55)
+#define FF_API_DEINTERLACE (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
#endif /* AVCODEC_VERSION_H */