Removing VpxInputContext dependency from {ivf, raw}_read_frame().
File type check inside ivf_read_frame() is not necessary (it is done before this function get called). Change-Id: Iede8feb358d25878b340473d85c3b01d701fc624
This commit is contained in:
Родитель
9c9fdf30e6
Коммит
0eac753dc0
10
ivfdec.c
10
ivfdec.c
|
@ -65,16 +65,10 @@ int file_is_ivf(struct VpxInputContext *input_ctx) {
|
|||
return is_ivf;
|
||||
}
|
||||
|
||||
int ivf_read_frame(struct VpxInputContext *input_ctx,
|
||||
uint8_t **buffer,
|
||||
size_t *bytes_read,
|
||||
size_t *buffer_size) {
|
||||
int ivf_read_frame(FILE *infile, uint8_t **buffer,
|
||||
size_t *bytes_read, size_t *buffer_size) {
|
||||
char raw_header[IVF_FRAME_HDR_SZ] = {0};
|
||||
size_t frame_size = 0;
|
||||
FILE *infile = input_ctx->file;
|
||||
|
||||
if (input_ctx->file_type != FILE_TYPE_IVF)
|
||||
return 0;
|
||||
|
||||
if (fread(raw_header, IVF_FRAME_HDR_SZ, 1, infile) != 1) {
|
||||
if (!feof(infile))
|
||||
|
|
6
ivfdec.h
6
ivfdec.h
|
@ -18,10 +18,8 @@ extern "C" {
|
|||
|
||||
int file_is_ivf(struct VpxInputContext *input);
|
||||
|
||||
int ivf_read_frame(struct VpxInputContext *input,
|
||||
uint8_t **buffer,
|
||||
size_t *bytes_read,
|
||||
size_t *buffer_size);
|
||||
int ivf_read_frame(FILE *infile, uint8_t **buffer,
|
||||
size_t *bytes_read, size_t *buffer_size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
|
7
vpxdec.c
7
vpxdec.c
|
@ -167,11 +167,10 @@ void usage_exit() {
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
static int raw_read_frame(struct VpxInputContext *input_ctx, uint8_t **buffer,
|
||||
static int raw_read_frame(FILE *infile, uint8_t **buffer,
|
||||
size_t *bytes_read, size_t *buffer_size) {
|
||||
char raw_hdr[RAW_FRAME_HDR_SZ];
|
||||
size_t frame_size = 0;
|
||||
FILE *infile = input_ctx->file;
|
||||
|
||||
if (fread(raw_hdr, RAW_FRAME_HDR_SZ, 1, infile) != 1) {
|
||||
if (!feof(infile))
|
||||
|
@ -221,10 +220,10 @@ static int read_frame(struct VpxDecInputContext *input, uint8_t **buf,
|
|||
return webm_read_frame(input->webm_ctx,
|
||||
buf, bytes_in_buffer, buffer_size);
|
||||
case FILE_TYPE_RAW:
|
||||
return raw_read_frame(input->vpx_input_ctx,
|
||||
return raw_read_frame(input->vpx_input_ctx->file,
|
||||
buf, bytes_in_buffer, buffer_size);
|
||||
case FILE_TYPE_IVF:
|
||||
return ivf_read_frame(input->vpx_input_ctx,
|
||||
return ivf_read_frame(input->vpx_input_ctx->file,
|
||||
buf, bytes_in_buffer, buffer_size);
|
||||
default:
|
||||
return 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче