decoder/ffmpeg: make variables more local
This commit is contained in:
parent
9d91aa23e6
commit
6303d54cbb
@ -92,13 +92,11 @@ static int64_t
|
|||||||
mpd_ffmpeg_stream_seek(void *opaque, int64_t pos, int whence)
|
mpd_ffmpeg_stream_seek(void *opaque, int64_t pos, int whence)
|
||||||
{
|
{
|
||||||
struct mpd_ffmpeg_stream *stream = opaque;
|
struct mpd_ffmpeg_stream *stream = opaque;
|
||||||
bool ret;
|
|
||||||
|
|
||||||
if (whence == AVSEEK_SIZE)
|
if (whence == AVSEEK_SIZE)
|
||||||
return stream->input->size;
|
return stream->input->size;
|
||||||
|
|
||||||
ret = input_stream_seek(stream->input, pos, whence, NULL);
|
if (!input_stream_seek(stream->input, pos, whence, NULL))
|
||||||
if (!ret)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return stream->input->offset;
|
return stream->input->offset;
|
||||||
@ -171,30 +169,24 @@ ffmpeg_send_packet(struct decoder *decoder, struct input_stream *is,
|
|||||||
AVCodecContext *codec_context,
|
AVCodecContext *codec_context,
|
||||||
const AVRational *time_base)
|
const AVRational *time_base)
|
||||||
{
|
{
|
||||||
enum decoder_command cmd = DECODE_COMMAND_NONE;
|
|
||||||
uint8_t audio_buf[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2 + 16];
|
|
||||||
int16_t *aligned_buffer;
|
|
||||||
size_t buffer_size;
|
|
||||||
int len, audio_size;
|
|
||||||
uint8_t *packet_data;
|
|
||||||
int packet_size;
|
|
||||||
|
|
||||||
if (packet->pts != (int64_t)AV_NOPTS_VALUE)
|
if (packet->pts != (int64_t)AV_NOPTS_VALUE)
|
||||||
decoder_timestamp(decoder,
|
decoder_timestamp(decoder,
|
||||||
av_rescale_q(packet->pts, *time_base,
|
av_rescale_q(packet->pts, *time_base,
|
||||||
(AVRational){1, 1}));
|
(AVRational){1, 1}));
|
||||||
|
|
||||||
packet_data = packet->data;
|
const uint8_t *packet_data = packet->data;
|
||||||
packet_size = packet->size;
|
int packet_size = packet->size;
|
||||||
|
|
||||||
buffer_size = sizeof(audio_buf);
|
uint8_t audio_buf[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2 + 16];
|
||||||
aligned_buffer = align16(audio_buf, &buffer_size);
|
size_t buffer_size = sizeof(audio_buf);
|
||||||
|
int16_t *aligned_buffer = align16(audio_buf, &buffer_size);
|
||||||
|
|
||||||
|
enum decoder_command cmd = DECODE_COMMAND_NONE;
|
||||||
while ((packet_size > 0) && (cmd == DECODE_COMMAND_NONE)) {
|
while ((packet_size > 0) && (cmd == DECODE_COMMAND_NONE)) {
|
||||||
audio_size = buffer_size;
|
int audio_size = buffer_size;
|
||||||
len = avcodec_decode_audio2(codec_context,
|
int len = avcodec_decode_audio2(codec_context,
|
||||||
aligned_buffer, &audio_size,
|
aligned_buffer, &audio_size,
|
||||||
packet_data, packet_size);
|
packet_data, packet_size);
|
||||||
|
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
/* if error, we skip the frame */
|
/* if error, we skip the frame */
|
||||||
@ -282,12 +274,8 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
AVFormatContext *format_context;
|
|
||||||
AVCodecContext *codec_context;
|
|
||||||
AVCodec *codec;
|
|
||||||
int audio_stream;
|
|
||||||
|
|
||||||
//ffmpeg works with ours "fileops" helper
|
//ffmpeg works with ours "fileops" helper
|
||||||
|
AVFormatContext *format_context;
|
||||||
if (av_open_input_stream(&format_context, stream->io, input->uri,
|
if (av_open_input_stream(&format_context, stream->io, input->uri,
|
||||||
input_format, NULL) != 0) {
|
input_format, NULL) != 0) {
|
||||||
g_warning("Open failed\n");
|
g_warning("Open failed\n");
|
||||||
@ -302,7 +290,7 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
audio_stream = ffmpeg_find_audio_stream(format_context);
|
int audio_stream = ffmpeg_find_audio_stream(format_context);
|
||||||
if (audio_stream == -1) {
|
if (audio_stream == -1) {
|
||||||
g_warning("No audio stream inside\n");
|
g_warning("No audio stream inside\n");
|
||||||
av_close_input_stream(format_context);
|
av_close_input_stream(format_context);
|
||||||
@ -310,11 +298,12 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
codec_context = format_context->streams[audio_stream]->codec;
|
AVCodecContext *codec_context =
|
||||||
|
format_context->streams[audio_stream]->codec;
|
||||||
if (codec_context->codec_name[0] != 0)
|
if (codec_context->codec_name[0] != 0)
|
||||||
g_debug("codec '%s'", codec_context->codec_name);
|
g_debug("codec '%s'", codec_context->codec_name);
|
||||||
|
|
||||||
codec = avcodec_find_decoder(codec_context->codec_id);
|
AVCodec *codec = avcodec_find_decoder(codec_context->codec_id);
|
||||||
|
|
||||||
if (!codec) {
|
if (!codec) {
|
||||||
g_warning("Unsupported audio codec\n");
|
g_warning("Unsupported audio codec\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user