summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Stevens <jay@wizardofthenet.com>2018-09-07 22:42:13 -0700
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>2018-09-10 23:15:42 +0200
commit69f1853a2831addd662041ceb2d90df355b0e60a (patch)
treeb83c08a5fbf89c9f28ab5e78235c78420a68bb40
parentdf05fd3131fd94d01ebeaa58b4c60510961b8be2 (diff)
libavcodec/dnxhd: change ff_dnxhd_get_hr_frame_size to avpriv_
refactor ff_dnxhd_get_hr_frame_size to avpriv_dnxhd_get_hr_frame_size, to allow cross library usage in libavformat/mxfenc this change makes this function no longer be always inlined. Signed-off-by: Jason Stevens <jay@wizardofthenet.com>
-rw-r--r--libavcodec/dnxhd_parser.c2
-rw-r--r--libavcodec/dnxhddata.c13
-rw-r--r--libavcodec/dnxhddata.h14
-rw-r--r--libavcodec/dnxhdenc.c2
4 files changed, 16 insertions, 15 deletions
diff --git a/libavcodec/dnxhd_parser.c b/libavcodec/dnxhd_parser.c
index 79ca1d6718..7c16e251a4 100644
--- a/libavcodec/dnxhd_parser.c
+++ b/libavcodec/dnxhd_parser.c
@@ -75,7 +75,7 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
remaining = avpriv_dnxhd_get_frame_size(cid);
if (remaining <= 0) {
- remaining = ff_dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h);
+ remaining = avpriv_dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h);
if (remaining <= 0)
continue;
}
diff --git a/libavcodec/dnxhddata.c b/libavcodec/dnxhddata.c
index e9dd29ce4c..154be89860 100644
--- a/libavcodec/dnxhddata.c
+++ b/libavcodec/dnxhddata.c
@@ -1092,6 +1092,19 @@ int avpriv_dnxhd_get_frame_size(int cid)
return ff_dnxhd_cid_table[i].frame_size;
}
+int avpriv_dnxhd_get_hr_frame_size(int cid, int w, int h)
+{
+ int result, i = ff_dnxhd_get_cid_table(cid);
+
+ if (i < 0)
+ return i;
+
+ result = ((h + 15) / 16) * ((w + 15) / 16) * (int64_t)ff_dnxhd_cid_table[i].packet_scale.num / ff_dnxhd_cid_table[i].packet_scale.den;
+ result = (result + 2048) / 4096 * 4096;
+
+ return FFMAX(result, 8192);
+}
+
int avpriv_dnxhd_get_interlaced(int cid)
{
int i = ff_dnxhd_get_cid_table(cid);
diff --git a/libavcodec/dnxhddata.h b/libavcodec/dnxhddata.h
index f80ce18f3c..cfa6b0c99d 100644
--- a/libavcodec/dnxhddata.h
+++ b/libavcodec/dnxhddata.h
@@ -90,20 +90,8 @@ static av_always_inline uint64_t ff_dnxhd_parse_header_prefix(const uint8_t *buf
return ff_dnxhd_check_header_prefix(prefix);
}
-static av_always_inline int ff_dnxhd_get_hr_frame_size(int cid, int w, int h)
-{
- int result, i = ff_dnxhd_get_cid_table(cid);
-
- if (i < 0)
- return i;
-
- result = ((h + 15) / 16) * ((w + 15) / 16) * (int64_t)ff_dnxhd_cid_table[i].packet_scale.num / ff_dnxhd_cid_table[i].packet_scale.den;
- result = (result + 2048) / 4096 * 4096;
-
- return FFMAX(result, 8192);
-}
-
int avpriv_dnxhd_get_frame_size(int cid);
+int avpriv_dnxhd_get_hr_frame_size(int cid, int w, int h);
int avpriv_dnxhd_get_interlaced(int cid);
#endif /* AVCODEC_DNXHDDATA_H */
diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c
index 9325f38baf..41b8079a09 100644
--- a/libavcodec/dnxhdenc.c
+++ b/libavcodec/dnxhdenc.c
@@ -482,7 +482,7 @@ static av_cold int dnxhd_encode_init(AVCodecContext *avctx)
ctx->m.mb_num = ctx->m.mb_height * ctx->m.mb_width;
if (ctx->cid_table->frame_size == DNXHD_VARIABLE) {
- ctx->frame_size = ff_dnxhd_get_hr_frame_size(ctx->cid,
+ ctx->frame_size = avpriv_dnxhd_get_hr_frame_size(ctx->cid,
avctx->width, avctx->height);
av_assert0(ctx->frame_size >= 0);
ctx->coding_unit_size = ctx->frame_size;