|
|
@ -161,26 +161,24 @@ int main(int argc, char **argv) |
|
|
|
av_log(NULL, AV_LOG_ERROR, "Failed to create output stream\n"); |
|
|
|
av_log(NULL, AV_LOG_ERROR, "Failed to create output stream\n"); |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
|
} |
|
|
|
} |
|
|
|
st->stream->codec->codec_type = av_buffersink_get_type(st->sink); |
|
|
|
st->stream->codecpar->codec_type = av_buffersink_get_type(st->sink); |
|
|
|
st->stream->time_base = st->stream->codec->time_base = |
|
|
|
st->stream->time_base = av_buffersink_get_time_base(st->sink); |
|
|
|
av_buffersink_get_time_base(st->sink); |
|
|
|
|
|
|
|
switch (av_buffersink_get_type(st->sink)) { |
|
|
|
switch (av_buffersink_get_type(st->sink)) { |
|
|
|
case AVMEDIA_TYPE_VIDEO: |
|
|
|
case AVMEDIA_TYPE_VIDEO: |
|
|
|
st->stream->codec->codec_id = AV_CODEC_ID_RAWVIDEO; |
|
|
|
st->stream->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO; |
|
|
|
st->stream->avg_frame_rate = |
|
|
|
st->stream->avg_frame_rate = |
|
|
|
st->stream-> r_frame_rate = av_buffersink_get_frame_rate(st->sink); |
|
|
|
st->stream-> r_frame_rate = av_buffersink_get_frame_rate(st->sink); |
|
|
|
st->stream->codec->width = av_buffersink_get_w(st->sink); |
|
|
|
st->stream->codecpar->width = av_buffersink_get_w(st->sink); |
|
|
|
st->stream->codec->height = av_buffersink_get_h(st->sink); |
|
|
|
st->stream->codecpar->height = av_buffersink_get_h(st->sink); |
|
|
|
st->stream->codec->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(st->sink); |
|
|
|
st->stream->codecpar->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(st->sink); |
|
|
|
st->stream->codec->pix_fmt = av_buffersink_get_format(st->sink); |
|
|
|
st->stream->codecpar->format = av_buffersink_get_format(st->sink); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AVMEDIA_TYPE_AUDIO: |
|
|
|
case AVMEDIA_TYPE_AUDIO: |
|
|
|
st->stream->codec->channel_layout = av_buffersink_get_channel_layout(st->sink); |
|
|
|
st->stream->codecpar->channel_layout = av_buffersink_get_channel_layout(st->sink); |
|
|
|
st->stream->codec->channels = av_buffersink_get_channels(st->sink); |
|
|
|
st->stream->codecpar->channels = av_buffersink_get_channels(st->sink); |
|
|
|
st->stream->codec->sample_rate = av_buffersink_get_sample_rate(st->sink); |
|
|
|
st->stream->codecpar->sample_rate = av_buffersink_get_sample_rate(st->sink); |
|
|
|
st->stream->codec->sample_fmt = av_buffersink_get_format(st->sink); |
|
|
|
st->stream->codecpar->format = av_buffersink_get_format(st->sink); |
|
|
|
st->stream->codec->codec_id = |
|
|
|
st->stream->codecpar->codec_id = av_get_pcm_codec(st->stream->codecpar->format, -1); |
|
|
|
av_get_pcm_codec(st->stream->codec->sample_fmt, -1); |
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
av_assert0(!"reached"); |
|
|
|
av_assert0(!"reached"); |
|
|
@ -245,7 +243,7 @@ int main(int argc, char **argv) |
|
|
|
frame); |
|
|
|
frame); |
|
|
|
frame = NULL; |
|
|
|
frame = NULL; |
|
|
|
if (ret < 0) { |
|
|
|
if (ret < 0) { |
|
|
|
av_log(st->stream->codec, AV_LOG_ERROR, |
|
|
|
av_log(st->mux, AV_LOG_ERROR, |
|
|
|
"Error writing frame: %s\n", av_err2str(ret)); |
|
|
|
"Error writing frame: %s\n", av_err2str(ret)); |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
|
} |
|
|
|
} |
|
|
|