mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 12:36:41 +08:00 
			
		
		
		
	Merge commit 'c91c63b5380bf79655c09320774a022f84d76fd5'
* commit 'c91c63b5380bf79655c09320774a022f84d76fd5': flvdec: Don't read the VP6 header byte when setting codec type based on metadata Conflicts: libavformat/flvdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -199,7 +199,7 @@ static int flv_same_video_codec(AVCodecContext *vcodec, int flags) | ||||
|     } | ||||
| } | ||||
|  | ||||
| static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, int flv_codecid) { | ||||
| static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, int flv_codecid, int read) { | ||||
|     AVCodecContext *vcodec = vstream->codec; | ||||
|     switch(flv_codecid) { | ||||
|         case FLV_CODECID_H263  : vcodec->codec_id = AV_CODEC_ID_FLV1   ; break; | ||||
| @@ -210,11 +210,13 @@ static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, int flv_co | ||||
|         case FLV_CODECID_VP6A  : | ||||
|             if(flv_codecid == FLV_CODECID_VP6A) | ||||
|                 vcodec->codec_id = AV_CODEC_ID_VP6A; | ||||
|             if(vcodec->extradata_size != 1) { | ||||
|                 vcodec->extradata_size = 1; | ||||
|                 vcodec->extradata = av_malloc(1 + FF_INPUT_BUFFER_PADDING_SIZE); | ||||
|             if (read) { | ||||
|                 if (vcodec->extradata_size != 1) { | ||||
|                     vcodec->extradata_size = 1; | ||||
|                     vcodec->extradata = av_malloc(1 + FF_INPUT_BUFFER_PADDING_SIZE); | ||||
|                 } | ||||
|                 vcodec->extradata[0] = avio_r8(s->pb); | ||||
|             } | ||||
|             vcodec->extradata[0] = avio_r8(s->pb); | ||||
|             return 1; // 1 byte body size adjustment for flv_read_packet() | ||||
|         case FLV_CODECID_H264: | ||||
|             vcodec->codec_id = AV_CODEC_ID_H264; | ||||
| @@ -406,7 +408,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst | ||||
|                 st->codec->codec_id = AV_CODEC_ID_TEXT; | ||||
|             } else if (flv->trust_metadata) { | ||||
|                 if (!strcmp(key, "videocodecid") && vcodec) { | ||||
|                     flv_set_video_codec(s, vstream, num_val); | ||||
|                     flv_set_video_codec(s, vstream, num_val, 0); | ||||
|                 } else | ||||
|                 if (!strcmp(key, "audiocodecid") && acodec) { | ||||
|                     flv_set_audio_codec(s, astream, acodec, num_val); | ||||
| @@ -795,7 +797,7 @@ retry_duration: | ||||
|             sample_rate = ctx.sample_rate; | ||||
|         } | ||||
|     } else if(stream_type == FLV_STREAM_TYPE_VIDEO) { | ||||
|         size -= flv_set_video_codec(s, st, flags & FLV_VIDEO_CODECID_MASK); | ||||
|         size -= flv_set_video_codec(s, st, flags & FLV_VIDEO_CODECID_MASK, 1); | ||||
|     } | ||||
|  | ||||
|     if (st->codec->codec_id == AV_CODEC_ID_AAC || | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Michael Niedermayer
					Michael Niedermayer