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:
Dmitry Kovalev 2014-01-13 11:57:55 -08:00
Родитель 9c9fdf30e6
Коммит 0eac753dc0
3 изменённых файлов: 7 добавлений и 16 удалений

Просмотреть файл

@ -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))

Просмотреть файл

@ -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" */

Просмотреть файл

@ -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;