On Thu, Apr 14, 2011 at 01:32:37PM +0200, Luca Barbato wrote:
> This way data and subtitle streams are properly rejected
> ---
> libavformat/flvenc.c | 17 +++++++++++++----
> 1 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
> index b8ae113..a2b7500 100644
> --- a/libavformat/flvenc.c
> +++ b/libavformat/flvenc.c
> @@ -181,7 +181,8 @@ static int flv_write_header(AVFormatContext *s)
>
> for(i=0; i<s->nb_streams; i++){
> AVCodecContext *enc = s->streams[i]->codec;
> - if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
> + switch(enc->codec_type) {
forgot whitespace
> + case AVMEDIA_TYPE_VIDEO:
> if (s->streams[i]->r_frame_rate.den &&
> s->streams[i]->r_frame_rate.num) {
> framerate = av_q2d(s->streams[i]->r_frame_rate);
> } else {
> @@ -192,10 +193,15 @@ static int flv_write_header(AVFormatContext *s)
> av_log(enc, AV_LOG_ERROR, "video codec not compatible with
> flv\n");
> return -1;
> }
> - } else {
> + break;
> + case AVMEDIA_TYPE_AUDIO:
> audio_enc = enc;
> if(get_audio_flags(enc)<0)
> return -1;
> + break;
> + default:
> + av_log(enc, AV_LOG_ERROR, "codec not compatible with flv\n");
> + return -1;
> }
> av_set_pts_info(s->streams[i], 32, 1, 1000); /* 32 bit pts in ms */
> }
> @@ -375,7 +381,8 @@ static int flv_write_packet(AVFormatContext *s, AVPacket
> *pkt)
> else
> flags_size= 1;
>
> - if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
> + switch (enc->codec_type) {
> + case AVMEDIA_TYPE_VIDEO:
> avio_w8(pb, FLV_TAG_TYPE_VIDEO);
>
> flags = enc->codec_tag;
> @@ -385,13 +392,15 @@ static int flv_write_packet(AVFormatContext *s,
> AVPacket *pkt)
> }
>
> flags |= pkt->flags & AV_PKT_FLAG_KEY ? FLV_FRAME_KEY :
> FLV_FRAME_INTER;
> - } else {
> + break;
> + case AVMEDIA_TYPE_AUDIO:
> assert(enc->codec_type == AVMEDIA_TYPE_AUDIO);
> flags = get_audio_flags(enc);
>
> assert(size);
>
> avio_w8(pb, FLV_TAG_TYPE_AUDIO);
> + break;
> }
>
> if (enc->codec_id == CODEC_ID_H264) {
> --
> 1.7.4.1
looks ok
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel