X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=contrib%2Fpatch-ffmpeg.patch;h=e52731f1d7dfd69ca295339d255a3969b4655070;hb=b503190ecc40bb4eeed504213aa90b3a65e244c7;hp=c9cc5fae414eb1abe9b7e72b45a39c1f0dd330fa;hpb=db27e0f2df5e2a09a9a664aa35dfe9a6f5cdcff2;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/contrib/patch-ffmpeg.patch b/contrib/patch-ffmpeg.patch index c9cc5fae..e52731f1 100644 --- a/contrib/patch-ffmpeg.patch +++ b/contrib/patch-ffmpeg.patch @@ -1,131 +1,8 @@ ---- ffmpeg/configure 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/configure 2006-09-23 14:37:49.000000000 -0400 -@@ -493,7 +493,7 @@ - 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc" - mmx="no" - ;; --*20010315*) echo "BeBits gcc" -+*20010315*|2.95.3*) echo "BeBits gcc" - add_cflags "-fno-expensive-optimizations" - ;; - esac ---- ffmpeg/libavformat/movenc.c 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/libavformat/movenc.c 2006-09-23 14:49:42.000000000 -0400 -@@ -34,6 +34,7 @@ - #define MODE_PSP 3 // example working PSP command line: - // ffmpeg -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4 - #define MODE_3G2 4 -+#define MODE_IPOD 5 - - typedef struct MOVIentry { - unsigned int flags, size; -@@ -600,6 +601,18 @@ - return tag; - } - -+static int mov_write_colr_tag(ByteIOContext *pb) -+{ -+ put_be32( pb, 0x12 ); -+ put_tag( pb, "colr" ); -+ put_tag( pb, "nclc" ); -+ put_be16( pb, 6 ); -+ put_be16( pb, 1 ); -+ put_be16( pb, 6 ); -+ put_be32( pb, 0 ); -+ return 0x12; -+} -+ - static int mov_write_video_tag(ByteIOContext *pb, MOVTrack* track) - { - offset_t pos = url_ftell(pb); -@@ -649,8 +662,21 @@ - mov_write_d263_tag(pb); - else if(track->enc->codec_id == CODEC_ID_SVQ3) - mov_write_svq3_tag(pb); -- else if(track->enc->codec_id == CODEC_ID_H264) -- mov_write_avcc_tag(pb, track); -+ else if(track->enc->codec_id == CODEC_ID_H264) { -+ mov_write_avcc_tag(pb, track); -+ if (track->mode == MODE_IPOD) { -+ put_be32(pb, 0x1C); /* size ... reports as 28 in mp4box! */ -+ put_tag(pb, "uuid"); -+ put_be32(pb, 0x6B6840F2); -+ put_be32(pb, 0x5F244FC5); -+ put_be32(pb, 0xBA39A51B); -+ put_be32(pb, 0xCF0323F3); -+ put_be32(pb, 0x00000001); -+ put_be32(pb, 0x0000039C); -+ } -+ } -+ -+ mov_write_colr_tag(pb); - - return updateSize (pb, pos); - } -@@ -903,6 +929,10 @@ - /* Track width and height, for visual only */ - if(track->enc->codec_type == CODEC_TYPE_VIDEO) { - double sample_aspect_ratio = av_q2d(track->enc->sample_aspect_ratio); -+ if (track->mode == MODE_IPOD) { -+ /* FIXME , I do not believe this is needed, bad assumption */ -+ sample_aspect_ratio = 1; -+ } - if( !sample_aspect_ratio ) sample_aspect_ratio = 1; - put_be32(pb, sample_aspect_ratio * track->enc->width*0x10000); - put_be32(pb, track->enc->height*0x10000); -@@ -1348,6 +1378,8 @@ - put_tag(pb, "MSNV"); - else if ( mov->mode == MODE_MP4 ) - put_tag(pb, "isom"); -+ else if ( mov->mode == MODE_IPOD ) -+ put_tag(pb, "isom"); - else - put_tag(pb, "qt "); - -@@ -1359,6 +1391,8 @@ - put_tag(pb, "3g2a"); - else if ( mov->mode == MODE_PSP ) - put_tag(pb, "MSNV"); -+ else if ( mov->mode == MODE_IPOD ) -+ put_tag(pb, "mp41"); - else if ( mov->mode == MODE_MP4 ) - put_tag(pb, "mp41"); - else -@@ -1440,7 +1474,8 @@ - else if (!strcmp("3g2", s->oformat->name)) mov->mode = MODE_3G2; - else if (!strcmp("mov", s->oformat->name)) mov->mode = MODE_MOV; - else if (!strcmp("psp", s->oformat->name)) mov->mode = MODE_PSP; -- -+ else if (!strcmp("ipod", s->oformat->name)) mov->mode = MODE_IPOD; -+ - mov_write_ftyp_tag(pb,s); - if ( mov->mode == MODE_PSP ) { - if ( s->nb_streams != 2 ) { -@@ -1640,6 +1675,21 @@ - .flags = AVFMT_GLOBALHEADER, - }; - #endif -+#ifdef CONFIG_IPOD_MUXER -+AVOutputFormat ipod_muxer = { -+ "ipod", -+ "ipod mp4 format", -+ "application/mp4", -+ "mp4,m4v,ipod", -+ sizeof(MOVContext), -+ CODEC_ID_AAC, -+ CODEC_ID_MPEG4, -+ mov_write_header, -+ mov_write_packet, -+ mov_write_trailer, -+ .flags = AVFMT_GLOBALHEADER, -+}; -+#endif - #ifdef CONFIG_PSP_MUXER - AVOutputFormat psp_muxer = { - "psp", ---- ffmpeg/libavformat/tcp.c 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/libavformat/tcp.c 2006-09-23 14:34:32.000000000 -0400 -@@ -112,11 +112,13 @@ +Index: libavformat/tcp.c +=================================================================== +--- libavformat/tcp.c (revision 9814) ++++ libavformat/tcp.c (working copy) +@@ -88,11 +88,13 @@ break; } @@ -139,35 +16,3 @@ } s->fd = fd; return 0; ---- ffmpeg/libavformat/allformats.h 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/libavformat/allformats.h 2006-09-23 15:02:41.000000000 -0400 -@@ -74,6 +74,7 @@ - extern AVOutputFormat mov_muxer; - extern AVOutputFormat tgp_muxer; - extern AVOutputFormat mp4_muxer; -+extern AVOutputFormat ipod_muxer; - extern AVOutputFormat psp_muxer; - extern AVOutputFormat tg2_muxer; - extern AVInputFormat mp3_demuxer; ---- ffmpeg/libavformat/allformats.c 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/libavformat/allformats.c 2006-09-23 14:26:11.000000000 -0400 -@@ -204,6 +204,9 @@ - #ifdef CONFIG_PSP_MUXER - av_register_output_format(&psp_muxer); - #endif -+#ifdef CONFIG_IPOD_MUXER -+ av_register_output_format(&ipod_muxer); -+#endif - #ifdef CONFIG_TG2_MUXER - av_register_output_format(&tg2_muxer); - #endif ---- ffmpeg/libavformat/Makefile 2006-09-23 14:22:08.000000000 -0400 -+++ ffmpeg-patched/libavformat/Makefile 2006-09-23 20:15:09.000000000 -0400 -@@ -62,6 +62,7 @@ - OBJS-$(CONFIG_TGP_MUXER) += movenc.o riff.o isom.o - OBJS-$(CONFIG_MP4_MUXER) += movenc.o riff.o isom.o - OBJS-$(CONFIG_PSP_MUXER) += movenc.o riff.o isom.o -+OBJS-$(CONFIG_IPOD_MUXER) += movenc.o riff.o isom.o - OBJS-$(CONFIG_TG2_MUXER) += movenc.o riff.o isom.o - OBJS-$(CONFIG_MP3_DEMUXER) += mp3.o - OBJS-$(CONFIG_MP2_MUXER) += mp3.o