summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2016-06-19 12:38:28 +0200
committerClément Bœsch <u@pkh.me>2016-06-19 12:38:28 +0200
commit34ec084b84817ca0b00544ca8e1029e6073c1e51 (patch)
tree7adc32b90719b0a4af2c2fcf42f895f1d305f7dd
parent48ea5433c813835907f053d38673f7112cd9c4a6 (diff)
lavc/h264: move history parsing variable to H264ParseContext
This makes h264_find_frame_end() not depend on H264Context anymore.
-rw-r--r--libavcodec/h264.h4
-rw-r--r--libavcodec/h264_parser.c16
2 files changed, 9 insertions, 11 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 1dd4bc1166..bd4b865fe0 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -684,10 +684,6 @@ typedef struct H264Context {
int cur_bit_depth_luma;
int16_t slice_row[MAX_SLICES]; ///< to detect when MAX_SLICES is too low
- uint8_t parse_history[6];
- int parse_history_count;
- int parse_last_mb;
-
int enable_er;
H264SEIContext sei;
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index be7e7ab47e..4f28ba74b8 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -55,13 +55,15 @@ typedef struct H264ParseContext {
int is_avc;
int nal_length_size;
int got_first;
+ uint8_t parse_history[6];
+ int parse_history_count;
+ int parse_last_mb;
} H264ParseContext;
static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
int buf_size, void *logctx)
{
- H264Context *h = &p->h;
int i, j;
uint32_t state;
ParseContext *pc = &p->pc;
@@ -115,15 +117,15 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
}
state = 7;
} else {
- h->parse_history[h->parse_history_count++]= buf[i];
- if (h->parse_history_count>5) {
- unsigned int mb, last_mb= h->parse_last_mb;
+ p->parse_history[p->parse_history_count++] = buf[i];
+ if (p->parse_history_count > 5) {
+ unsigned int mb, last_mb = p->parse_last_mb;
GetBitContext gb;
- init_get_bits(&gb, h->parse_history, 8*h->parse_history_count);
- h->parse_history_count=0;
+ init_get_bits(&gb, p->parse_history, 8*p->parse_history_count);
+ p->parse_history_count = 0;
mb= get_ue_golomb_long(&gb);
- h->parse_last_mb= mb;
+ p->parse_last_mb = mb;
if (pc->frame_start_found) {
if (mb <= last_mb)
goto found;