Commit 75dd6938 authored by Laurent Aimar's avatar Laurent Aimar Committed by Ramiro Polla

Export get_slice_type() as ff_h264_get_slice_type().

Patch by Laurent Aimar <fenrir at videolan dot org>.

Originally committed as revision 21110 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent fc53b6af
...@@ -4155,6 +4155,18 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ ...@@ -4155,6 +4155,18 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
return 0; return 0;
} }
int ff_h264_get_slice_type(H264Context *h)
{
switch (h->slice_type) {
case FF_P_TYPE: return 0;
case FF_B_TYPE: return 1;
case FF_I_TYPE: return 2;
case FF_SP_TYPE: return 3;
case FF_SI_TYPE: return 4;
default: return -1;
}
}
/** /**
* *
*/ */
......
...@@ -582,4 +582,9 @@ int ff_h264_decode_rbsp_trailing(H264Context *h, const uint8_t *src); ...@@ -582,4 +582,9 @@ int ff_h264_decode_rbsp_trailing(H264Context *h, const uint8_t *src);
*/ */
av_cold void ff_h264_free_context(H264Context *h); av_cold void ff_h264_free_context(H264Context *h);
/**
* reconstructs bitstream slice_type.
*/
int ff_h264_get_slice_type(H264Context *h);
#endif /* AVCODEC_H264_H */ #endif /* AVCODEC_H264_H */
...@@ -28,19 +28,6 @@ ...@@ -28,19 +28,6 @@
* structures for H.264 decoding. * structures for H.264 decoding.
*/ */
/** Reconstructs bitstream slice_type. */
static int get_slice_type(H264Context *h)
{
switch (h->slice_type) {
case FF_P_TYPE: return 0;
case FF_B_TYPE: return 1;
case FF_I_TYPE: return 2;
case FF_SP_TYPE: return 3;
case FF_SI_TYPE: return 4;
default: return -1;
}
}
/** /**
* Initializes an empty VA API picture. * Initializes an empty VA API picture.
* *
...@@ -323,7 +310,7 @@ static int decode_slice(AVCodecContext *avctx, ...@@ -323,7 +310,7 @@ static int decode_slice(AVCodecContext *avctx,
return -1; return -1;
slice_param->slice_data_bit_offset = get_bits_count(&h->s.gb) + 8; /* bit buffer started beyond nal_unit_type */ slice_param->slice_data_bit_offset = get_bits_count(&h->s.gb) + 8; /* bit buffer started beyond nal_unit_type */
slice_param->first_mb_in_slice = (s->mb_y >> FIELD_OR_MBAFF_PICTURE) * s->mb_width + s->mb_x; slice_param->first_mb_in_slice = (s->mb_y >> FIELD_OR_MBAFF_PICTURE) * s->mb_width + s->mb_x;
slice_param->slice_type = get_slice_type(h); slice_param->slice_type = ff_h264_get_slice_type(h);
slice_param->direct_spatial_mv_pred_flag = h->slice_type == FF_B_TYPE ? h->direct_spatial_mv_pred : 0; slice_param->direct_spatial_mv_pred_flag = h->slice_type == FF_B_TYPE ? h->direct_spatial_mv_pred : 0;
slice_param->num_ref_idx_l0_active_minus1 = h->list_count > 0 ? h->ref_count[0] - 1 : 0; slice_param->num_ref_idx_l0_active_minus1 = h->list_count > 0 ? h->ref_count[0] - 1 : 0;
slice_param->num_ref_idx_l1_active_minus1 = h->list_count > 1 ? h->ref_count[1] - 1 : 0; slice_param->num_ref_idx_l1_active_minus1 = h->list_count > 1 ? h->ref_count[1] - 1 : 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment