mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 12:36:41 +08:00 
			
		
		
		
	Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
used with "-acodec copy" to either copy a flac file verbatim or extract the raw flac from an ogg-flac file. Originally committed as revision 5368 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		 Justin Ruggles
					Justin Ruggles
				
			
				
					committed by
					
						 Benjamin Larsson
						Benjamin Larsson
					
				
			
			
				
	
			
			
			 Benjamin Larsson
						Benjamin Larsson
					
				
			
						parent
						
							3644cb8ff9
						
					
				
				
					commit
					ce1d2a95c3
				
			| @@ -26,6 +26,20 @@ static int raw_write_header(struct AVFormatContext *s) | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static int flac_write_header(struct AVFormatContext *s) | ||||||
|  | { | ||||||
|  |     static const uint8_t header[8] = { | ||||||
|  |         0x66, 0x4C, 0x61, 0x43, 0x80, 0x00, 0x00, 0x22 | ||||||
|  |     }; | ||||||
|  |     uint8_t *streaminfo = s->streams[0]->codec->extradata; | ||||||
|  |     int len = s->streams[0]->codec->extradata_size; | ||||||
|  |     if(streaminfo != NULL && len > 0) { | ||||||
|  |         put_buffer(&s->pb, header, 8); | ||||||
|  |         put_buffer(&s->pb, streaminfo, len); | ||||||
|  |     } | ||||||
|  |     return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
| static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt) | static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt) | ||||||
| { | { | ||||||
|     put_buffer(&s->pb, pkt->data, pkt->size); |     put_buffer(&s->pb, pkt->data, pkt->size); | ||||||
| @@ -397,6 +411,21 @@ AVInputFormat flac_iformat = { | |||||||
|     .extensions = "flac", |     .extensions = "flac", | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | #ifdef CONFIG_MUXERS | ||||||
|  | AVOutputFormat flac_oformat = { | ||||||
|  |     "flac", | ||||||
|  |     "raw flac", | ||||||
|  |     "audio/x-flac", | ||||||
|  |     "flac", | ||||||
|  |     0, | ||||||
|  |     CODEC_ID_FLAC, | ||||||
|  |     0, | ||||||
|  |     flac_write_header, | ||||||
|  |     raw_write_packet, | ||||||
|  |     raw_write_trailer, | ||||||
|  | }; | ||||||
|  | #endif //CONFIG_MUXERS | ||||||
|  |  | ||||||
| AVInputFormat ac3_iformat = { | AVInputFormat ac3_iformat = { | ||||||
|     "ac3", |     "ac3", | ||||||
|     "raw ac3", |     "raw ac3", | ||||||
| @@ -792,6 +821,7 @@ int raw_init(void) | |||||||
|  |  | ||||||
|     av_register_input_format(&shorten_iformat); |     av_register_input_format(&shorten_iformat); | ||||||
|     av_register_input_format(&flac_iformat); |     av_register_input_format(&flac_iformat); | ||||||
|  |     av_register_output_format(&flac_oformat); | ||||||
|  |  | ||||||
|     av_register_input_format(&ac3_iformat); |     av_register_input_format(&ac3_iformat); | ||||||
|     av_register_output_format(&ac3_oformat); |     av_register_output_format(&ac3_oformat); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user