You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
diracdec: Replace dirac parse codes with better ones
This commit is contained in:
committed by
Rostislav Pehlivanov
parent
7424a6d0a5
commit
cdf8c9038d
@@ -34,6 +34,28 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "get_bits.h"
|
#include "get_bits.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse code values:
|
||||||
|
*
|
||||||
|
* Dirac Specification ->
|
||||||
|
* 9.6.1 Table 9.1
|
||||||
|
*
|
||||||
|
* VC-2 Specification ->
|
||||||
|
* 10.4.1 Table 10.1
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum DiracParseCodes {
|
||||||
|
DIRAC_PCODE_SEQ_HEADER = 0x00,
|
||||||
|
DIRAC_PCODE_END_SEQ = 0x10,
|
||||||
|
DIRAC_PCODE_AUX = 0x20,
|
||||||
|
DIRAC_PCODE_PAD = 0x30,
|
||||||
|
DIRAC_PCODE_PICTURE_CODED = 0x08,
|
||||||
|
DIRAC_PCODE_PICTURE_RAW = 0x48,
|
||||||
|
DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8,
|
||||||
|
DIRAC_PCODE_PICTURE_HQ = 0xE8,
|
||||||
|
DIRAC_PCODE_MAGIC = 0x42424344,
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct DiracVersionInfo {
|
typedef struct DiracVersionInfo {
|
||||||
int major;
|
int major;
|
||||||
int minor;
|
int minor;
|
||||||
|
@@ -230,17 +230,6 @@ typedef struct DiracContext {
|
|||||||
DiracFrame all_frames[MAX_FRAMES];
|
DiracFrame all_frames[MAX_FRAMES];
|
||||||
} DiracContext;
|
} DiracContext;
|
||||||
|
|
||||||
/**
|
|
||||||
* Dirac Specification ->
|
|
||||||
* Parse code values. 9.6.1 Table 9.1
|
|
||||||
*/
|
|
||||||
enum dirac_parse_code {
|
|
||||||
pc_seq_header = 0x00,
|
|
||||||
pc_eos = 0x10,
|
|
||||||
pc_aux_data = 0x20,
|
|
||||||
pc_padding = 0x30,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum dirac_subband {
|
enum dirac_subband {
|
||||||
subband_ll = 0,
|
subband_ll = 0,
|
||||||
subband_hl = 1,
|
subband_hl = 1,
|
||||||
@@ -1945,7 +1934,7 @@ static int dirac_decode_data_unit(AVCodecContext *avctx, const uint8_t *buf, int
|
|||||||
|
|
||||||
init_get_bits(&s->gb, &buf[13], 8*(size - DATA_UNIT_HEADER_SIZE));
|
init_get_bits(&s->gb, &buf[13], 8*(size - DATA_UNIT_HEADER_SIZE));
|
||||||
|
|
||||||
if (parse_code == pc_seq_header) {
|
if (parse_code == DIRAC_PCODE_SEQ_HEADER) {
|
||||||
if (s->seen_sequence_header)
|
if (s->seen_sequence_header)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -1964,10 +1953,10 @@ static int dirac_decode_data_unit(AVCodecContext *avctx, const uint8_t *buf, int
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
s->seen_sequence_header = 1;
|
s->seen_sequence_header = 1;
|
||||||
} else if (parse_code == pc_eos) { /* [DIRAC_STD] End of Sequence */
|
} else if (parse_code == DIRAC_PCODE_END_SEQ) { /* [DIRAC_STD] End of Sequence */
|
||||||
free_sequence_buffers(s);
|
free_sequence_buffers(s);
|
||||||
s->seen_sequence_header = 0;
|
s->seen_sequence_header = 0;
|
||||||
} else if (parse_code == pc_aux_data) {
|
} else if (parse_code == DIRAC_PCODE_AUX) {
|
||||||
if (buf[13] == 1) { /* encoder implementation/version */
|
if (buf[13] == 1) { /* encoder implementation/version */
|
||||||
int ver[3];
|
int ver[3];
|
||||||
/* versions older than 1.0.8 don't store quant delta for
|
/* versions older than 1.0.8 don't store quant delta for
|
||||||
|
Reference in New Issue
Block a user