tizen 2.3 release tizen_2.3 submit/tizen_2.3/20150202.062822 tizen_2.3_release
authorjk7744.park <jk7744.park@samsung.com>
Sun, 1 Feb 2015 04:45:16 +0000 (13:45 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Sun, 1 Feb 2015 04:45:16 +0000 (13:45 +0900)
configure.ac
ext/ffmpeg/gstffmpegcodecmap.c
ext/ffmpeg/gstffmpegmux.c
gst-libs/ext/ffmpeg/libavformat/movenc.c [changed mode: 0644->0755]
gst-libs/ext/ffmpeg/libavformat/utils.c
packaging/gst-ffmpeg.spec

index 6fd58c0..5f6f7bc 100644 (file)
@@ -301,7 +301,8 @@ else
 
   AC_ARG_WITH(ffmpeg-extra-configure, 
       AC_HELP_STRING([--with-ffmpeg-extra-configure="xxx"],
-      [extra configure options for internal ffmpeg ./configure script]),,
+      [extra configure options for internal ffmpeg ./configure script]),
+      [ffmpeg-extra-configure="$withval"],
       with_ffmpeg_extra_configure=no)
 
   # basic arguments
@@ -316,72 +317,73 @@ else
 # ffmpeg cannot support msmpeg4v1 encoder properly.
 #      --enable-encoder=msmpeg4v1
 
-       embffmpeg_configure_args="$embffmpeg_configure_args \
-                                                         --enable-static --enable-pic --enable-optimizations \
-                                                         --disable-doc \
-                                                         --disable-gpl  --disable-postproc --disable-swscale  \
-                                                         --disable-mmx --enable-neon \
-                                                         --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay   \
-                                                         --disable-decoders --disable-encoders \
-                                                         --disable-muxers --disable-demuxers \
-                                                         --disable-parsers  \
-                                                         --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters  \
-                                                         --enable-libvorbis --enable-libtheora \
-                                                         --enable-encoder=aac  \
-                                                         --enable-encoder=h263  \
-                                                         --enable-encoder=h263p \
-                                                         --disable-encoder=mpeg4 \
-                                                         --disable-encoder=msmpeg4v2 \
-                                                         --disable-encoder=msmpeg4v3 \
-                                                         --enable-decoder=aac   \
-                                                         --disable-decoder=ac3   \
-                                                         --enable-decoder=h263  \
-                                                         --disable-decoder=h264  \
-                                                         --enable-decoder=mp3   \
-                                                         --disable-decoder=mp3adu    \
-                                                         --disable-decoder=mpeg4 \
-                           --disable-decoder=rv10 \
-                           --disable-decoder=rv20 \
-                           --disable-decoder=rv30 \
-                           --disable-decoder=rv40 \
-                           --disable-decoder=cook \
-                           --disable-decoder=sipr \
-                           --disable-decoder=ra_144 \
-                           --disable-decoder=ra_288 \
-                                                         --disable-decoder=mpegvideo \
-                                                         --disable-decoder=msmpeg4v1  \
-                                                         --disable-decoder=msmpeg4v2  \
-                                                         --disable-decoder=msmpeg4v3  \
-                                                         --disable-decoder=wmv3   \
-                                                         --disable-decoder=vc1   \
-                                                         --disable-decoder=wmav1     \
-                                                         --disable-decoder=wmav2     \
-                                                         --enable-decoder=theora     \
-                                                         --enable-decoder=vorbis     \
-                                                         --enable-muxer=amr \
-                                                         --enable-muxer=tgp \
-                                                         --enable-muxer=mp4 \
-                                                         --enable-muxer=adts \
-                                                         --enable-demuxer=aac   \
-                                                         --enable-demuxer=ac3   \
-                                                         --enable-demuxer=avi   \
-                                                         --enable-demuxer=amr   \
-                                                         --enable-demuxer=h263    \
-                                                         --enable-demuxer=h264  \
-                                                         --enable-demuxer=m4v   \
-                                                         --enable-demuxer=mov   \
-                                                         --enable-demuxer=mp3   \
-                                                         --enable-demuxer=mpegts    \
-                                                         --enable-demuxer=mpegps    \
-                                                         --enable-demuxer=mpegtsraw \
-                                                         --enable-demuxer=mpegvideo \
-                                                         --enable-parser=aac    \
-                                                         --enable-parser=ac3    \
-                                                         --enable-parser=h263   \
-                                                         --enable-parser=h264   \
-                                                         --enable-parser=mpeg4video \
-                                                         --enable-parser=mpegaudio  \
-                                                         --enable-parser=mpegvideo"
+  embffmpeg_configure_args="$embffmpeg_configure_args \
+                            --enable-static --enable-pic --enable-optimizations \
+                            --disable-doc \
+                            --disable-gpl  --disable-postproc --disable-swscale  \
+                            --disable-mmx --enable-neon \
+                            --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay   \
+                            --disable-decoders --disable-encoders \
+                            --disable-muxers --disable-demuxers \
+                            --disable-parsers  \
+                            --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters  \
+                            --disable-libvorbis --disable-libtheora \
+                            --disable-encoder=aac  \
+                            --disable-encoder=h263  \
+                            --disable-encoder=h263p \
+                            --disable-encoder=mpeg4 \
+                            --disable-encoder=msmpeg4v2 \
+                            --disable-encoder=msmpeg4v3 \
+                            --disable-decoder=aac   \
+                            --disable-decoder=ac3   \
+                            --disable-decoder=h263  \
+                            --disable-decoder=h264  \
+                            --disable-decoder=mp3   \
+                            --disable-decoder=mp3adu    \
+                            --disable-decoder=mpeg4 \
+                            --disable-decoder=rv10 \
+                            --disable-decoder=rv20 \
+                            --disable-decoder=rv30 \
+                            --disable-decoder=rv40 \
+                            --disable-decoder=cook \
+                            --disable-decoder=sipr \
+                            --disable-decoder=ra_144 \
+                            --disable-decoder=ra_288 \
+                            --disable-decoder=mpegvideo \
+                            --disable-decoder=msmpeg4v1  \
+                            --disable-decoder=msmpeg4v2  \
+                            --disable-decoder=msmpeg4v3  \
+                            --disable-decoder=wmv3   \
+                            --disable-decoder=vc1   \
+                            --disable-decoder=wmav1     \
+                            --disable-decoder=wmav2     \
+                            --disable-decoder=theora     \
+                            --enable-decoder=vorbis     \
+                            --enable-muxer=amr \
+                            --enable-muxer=tgp \
+                            --enable-muxer=mp4 \
+                            --enable-muxer=adts \
+                            --enable-demuxer=aac   \
+                            --enable-demuxer=ac3   \
+                            --enable-demuxer=avi   \
+                            --enable-demuxer=amr   \
+                            --enable-demuxer=h263    \
+                            --enable-demuxer=h264  \
+                            --enable-demuxer=m4v   \
+                            --enable-demuxer=mov   \
+                            --enable-demuxer=mp3   \
+                            --enable-demuxer=mpegts    \
+                            --enable-demuxer=mpegps    \
+                            --enable-demuxer=mpegtsraw \
+                            --enable-demuxer=mpegvideo \
+                            --enable-parser=aac    \
+                            --enable-parser=ac3    \
+                            --enable-parser=h263   \
+                            --enable-parser=h264   \
+                            --enable-parser=mpeg4video \
+                            --enable-parser=mpegaudio  \
+                            --enable-parser=mpegvideo \
+                            $(ffmpeg-extra-configure)"
 
 
   # if we are cross-compiling, tell ffmpeg so
index c2b5b08..4b7bed4 100644 (file)
@@ -1826,7 +1826,7 @@ gst_ffmpeg_codectype_to_audio_caps (AVCodecContext * context,
     caps = gst_caps_new_empty ();
     for (i = 0; codec->sample_fmts[i] != -1; i++) {
       temp =
-          gst_ffmpeg_smpfmt_to_caps (codec->sample_fmts[0], context, codec_id);
+          gst_ffmpeg_smpfmt_to_caps (codec->sample_fmts[i], context, codec_id);
       if (temp != NULL)
         gst_caps_append (caps, temp);
     }
index 194535a..5c60d3b 100644 (file)
@@ -503,13 +503,13 @@ gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_PRELOAD,
       g_param_spec_int ("preload", "preload",
-          "Set the initial demux-decode delay (in microseconds)", 0, G_MAXINT,
-          0, G_PARAM_READWRITE));
+          "Set the initial demux-decode delay (in microseconds)",
+          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_MAXDELAY,
       g_param_spec_int ("maxdelay", "maxdelay",
           "Set the maximum demux-decode delay (in microseconds)", 0, G_MAXINT,
-          0, G_PARAM_READWRITE));
+          0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->request_new_pad = gst_ffmpegmux_request_new_pad;
   gstelement_class->change_state = gst_ffmpegmux_change_state;
@@ -522,15 +522,15 @@ gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass)
   g_object_class_install_property (gobject_class, PROP_EXPECTED_TRAILER_SIZE,
       g_param_spec_uint ("expected-trailer-size", "Expected Trailer Size",
           "Expected trailer size (bytes)",
-          0, G_MAXUINT, 0, G_PARAM_READABLE));
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_NUMBER_VIDEO_FRAMES,
       g_param_spec_uint ("number-video-frames", "Number of video frames",
           "Current number of video frames",
-          0, G_MAXUINT, 0, G_PARAM_READABLE));
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_NUMBER_AUDIO_FRAMES,
       g_param_spec_uint ("number-audio-frames", "Number of audio frames",
           "Current number of audio frames",
-          0, G_MAXUINT, 0, G_PARAM_READABLE));
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 #endif
 }
 
@@ -606,11 +606,14 @@ gst_ffmpegmux_release_pad (GstElement * element, GstPad * pad)
                MOVMuxContext *mov = ffmpegmux->context->priv_data;
                if(mov && mov->tracks)
                {
-                       MOVTrack *trk = &mov->tracks[collect_pad->padnum];
-                       if(trk && trk->vosData)
+                       for(i=0;i<ffmpegmux->context->nb_streams;i++)
                        {
-                               av_free(trk->vosData);
-                               trk->vosData = NULL;
+                               MOVTrack *trk = &mov->tracks[i];
+                               if(trk && trk->vosData)
+                               {
+                                       av_free(trk->vosData);
+                                       trk->vosData = NULL;
+                               }
                        }
                        av_free(mov->tracks);
                        mov->tracks = NULL;
old mode 100644 (file)
new mode 100755 (executable)
index a6fd55e..f6afe9d
@@ -1140,6 +1140,8 @@ static int mov_write_mdia_tag(ByteIOContext *pb, MOVTrack *track)
 }
 
 #ifdef GST_EXT_FFMUX_ENHANCEMENT
+time_t timegm(struct tm *tm);
+
 static unsigned get_current_time (void)
 {
     time_t timep;
index 02c5256..524d576 100644 (file)
@@ -18,6 +18,7 @@
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+#include "movenc.h"
 #include "avformat.h"
 #include "internal.h"
 #include "libavcodec/opt.h"
@@ -2947,6 +2948,7 @@ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){
 int av_write_trailer(AVFormatContext *s)
 {
     int ret, i;
+    MOVMuxContext *mov = s->priv_data;
 
     for(;;){
         AVPacket pkt;
@@ -2974,6 +2976,17 @@ fail:
     for(i=0;i<s->nb_streams;i++) {
         av_freep(&s->streams[i]->priv_data);
         av_freep(&s->streams[i]->index_entries);
+        if(mov && mov->tracks)
+        {
+            MOVTrack *trk = &mov->tracks[i];
+            if(trk && trk->vosData)
+            {
+                av_free(trk->vosData);
+                trk->vosData = NULL;
+            }
+            av_free(mov->tracks);
+            mov->tracks = NULL;
+        }
     }
     av_freep(&s->priv_data);
     return ret;
index b3bf682..944d40e 100644 (file)
@@ -16,8 +16,6 @@ BuildRequires:  gst-plugins-base-devel
 BuildRequires:  pkgconfig(gstreamer-0.10) 
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(zlib)
-BuildRequires:  pkgconfig(vorbis)
-BuildRequires:  pkgconfig(theora)
 
 %description
 This GStreamer plugin supports a large number of audio and video compression
@@ -38,11 +36,18 @@ demuxing 30+ formats and colorspace conversion.
 export CFLAGS+=" -Wall -Wno-unused-but-set-variable -Wno-implicit-function-declaration -g -fPIC\
  -DFFDEC_RANK_MODIFICATION"
 
-%configure  --disable-static \
-       --disable-nls \
-       --prefix=%{_prefix} \
-       --with-html-dir=/tmp/dump
+export EXTRA_CONFIGURE="--disable-gpl"
 
+%ifarch %{arm}
+export EXTRA_CONFIGURE="$EXTRA_CONFIGURE --disable-libvorbis --disable-libtheora --enable-decoders --enable-encoders"
+%else
+export EXTRA_CONFIGURE="$EXTRA_CONFIGURE --disable-libvorbis --disable-libtheora"
+%endif
+%configure  --disable-static \
+        --disable-nls \
+        --prefix=%{_prefix} \
+        --with-html-dir=/tmp/dump \
+        --with-ffmpeg-extra-configure="$EXTRA_CONFIGURE"
 
 make %{?jobs:-j%jobs}