filescene/single frame fixes, layout improvements, ffmpeg 3.1.1
authorGood Guy <[email protected]>
Fri, 8 Jul 2016 18:54:11 +0000 (12:54 -0600)
committerGood Guy <[email protected]>
Fri, 8 Jul 2016 18:54:11 +0000 (12:54 -0600)
25 files changed:
cinelerra-5.1/cinelerra/asset.C
cinelerra-5.1/cinelerra/asset.h
cinelerra-5.1/cinelerra/assetedit.C
cinelerra-5.1/cinelerra/file.C
cinelerra-5.1/cinelerra/filelist.C
cinelerra-5.1/cinelerra/filescene.C
cinelerra-5.1/cinelerra/preferencesthread.C
cinelerra-5.1/cinelerra/render.C
cinelerra-5.1/cinelerra/tests/text2movie
cinelerra-5.1/cinelerra/zoombar.C
cinelerra-5.1/cinelerra/zoombar.h
cinelerra-5.1/configure.ac
cinelerra-5.1/ffmpeg/plugin.opts
cinelerra-5.1/plugins/theme_blond/Makefile
cinelerra-5.1/plugins/theme_blue/Makefile
cinelerra-5.1/plugins/theme_blue_dot/Makefile
cinelerra-5.1/plugins/theme_bright/Makefile
cinelerra-5.1/plugins/theme_hulk/Makefile
cinelerra-5.1/plugins/theme_pinklady/Makefile
cinelerra-5.1/plugins/theme_suv/Makefile
cinelerra-5.1/plugins/theme_unflat/Makefile
cinelerra-5.1/plugins/titler/titlewindow.C
cinelerra-5.1/thirdparty/src/ffmpeg-3.0.tar.xz [deleted file]
cinelerra-5.1/thirdparty/src/ffmpeg-3.1.1.tar.xz [new file with mode: 0644]
cinelerra-5.1/thirdparty/src/ffmpeg.patch3 [new file with mode: 0644]

index 5350004cd4dbfe5285602b5db1d479b349e88561..6aa73d7bc0941dc5c02a45237fed1c560595ea4d 100644 (file)
@@ -154,6 +154,7 @@ void Asset::reset_video()
        actual_width = width = 0;
        actual_height = height = 0;
        video_length = 0;
+       single_frame = 0;
        vmpeg_cmodel = BC_YUV420P;
        frame_rate = 0;
        program = -1;
@@ -235,7 +236,7 @@ void Asset::copy_format(Asset *asset, int do_index)
 
        this->audio_length = asset->audio_length;
        this->video_length = asset->video_length;
-
+       this->single_frame = asset->single_frame;
 
        ampeg_bitrate = asset->ampeg_bitrate;
        ampeg_derivative = asset->ampeg_derivative;
@@ -532,6 +533,7 @@ int Asset::read_video(FileXML *file)
        file->tag.get_property("VCODEC", vcodec);
 
        video_length = file->tag.get_property("VIDEO_LENGTH", (int64_t)0);
+       single_frame = file->tag.get_property("SINGLE_FRAME", (int64_t)0);
 
        interlace_autofixoption = file->tag.get_property("INTERLACE_AUTOFIX",0);
 
@@ -692,6 +694,7 @@ int Asset::write_video(FileXML *file)
                file->tag.set_property("VCODEC", vcodec);
 
        file->tag.set_property("VIDEO_LENGTH", video_length);
+       file->tag.set_property("SINGLE_FRAME", single_frame);
 
        file->tag.set_property("INTERLACE_AUTOFIX", interlace_autofixoption);
 
@@ -799,6 +802,7 @@ void Asset::load_defaults(BC_Hash *defaults,
                layers = GET_DEFAULT("LAYERS", layers);
                if(EQUIV(frame_rate, 0)) frame_rate = GET_DEFAULT("FRAMERATE", frame_rate);
                video_length = GET_DEFAULT("VIDEO_LENGTH", (int64_t)0);
+               single_frame = GET_DEFAULT("SINGLE_FRAME", (int64_t)0);
        }
 
        ampeg_bitrate = GET_DEFAULT("AMPEG_BITRATE", ampeg_bitrate);
@@ -983,6 +987,7 @@ void Asset::save_defaults(BC_Hash *defaults,
                UPDATE_DEFAULT("LAYERS", layers);
                UPDATE_DEFAULT("FRAMERATE", frame_rate);
                UPDATE_DEFAULT("VIDEO_LENGTH", video_length);
+               UPDATE_DEFAULT("SINGLE_FRAME", single_frame);
 
        }
 
@@ -1026,7 +1031,7 @@ int Asset::dump(FILE *fp)
                vcodec, aspect_ratio,string);
        fprintf(fp,"   reel_name %s reel_number %i tcstart %jd tcend %jd tcf %d\n",
                reel_name, reel_number, tcstart, tcend, tcformat);
-       fprintf(fp,"   video_length %jd \n", video_length);
+       fprintf(fp,"   video_length %jd repeat %d\n", video_length, single_frame);
 
 
        return 0;
index 51f775034e7b7126b7d0dcacfdfe451a29de0b22..479cccbb0740ea3606a26af4757d20f84acd9a57 100644 (file)
@@ -145,8 +145,8 @@ public:
 
        int64_t audio_length;
 
-// contains video data
-       int video_data;
+// contains video data, single frame data set
+       int video_data, single_frame;
        int layers, program;
        double frame_rate;
 
index dbdabf36edb49a00bdea9cdc145d288135e4d606..9d878072aca702bd3621865c1587ed1f48ec4a6b 100644 (file)
@@ -227,7 +227,7 @@ AssetEditWindow::AssetEditWindow(MWindow *mwindow, AssetEdit *asset_edit)
        mwindow->gui->get_abs_cursor_y(1) - (128 + 64 +
                (!asset_edit->indexable->have_audio() ? 0 : 180) +
                (!asset_edit->indexable->have_video() ? 0 : 350)) / 2,
-       400, (128 + 64 +
+       450, (128 + 64 +
                (!asset_edit->indexable->have_audio() ? 0 : 180) +
                (!asset_edit->indexable->have_video() ? 0 : 350)), 0, 0, 1)
 {
@@ -259,7 +259,7 @@ AssetEditWindow::~AssetEditWindow()
 
 void AssetEditWindow::create_objects()
 {
-       int y = 10, x = 10, x1 = 10, x2 = 160;
+       int y = 10, x = 10, x1 = 10, x2 = 190;
        char string[BCTEXTLEN];
        int vmargin;
        FileSystem fs;
index b9d161e93fcdafe9bda24e0af7647c79de8e32fc..f19ce0184137e6eb0aaf01f0a97a59f4c17d8435 100644 (file)
@@ -623,9 +623,12 @@ int File::open_file(Preferences *preferences,
 
        if( rd ) {
 // one frame image file, no specific length
-               if( !this->asset->audio_data && this->asset->video_data &&
-                   this->asset->video_length <= 1 )
+               if( !this->asset->audio_data &&
+                   this->asset->video_data && !this->asset->single_frame &&
+                   this->asset->video_length >= 0 && this->asset->video_length <= 1 ) {
+                       this->asset->single_frame = 1;
                        this->asset->video_length = -1;
+               }
        }
 
 // Synchronize header parameters
@@ -1124,7 +1127,7 @@ VFrame*** File::get_video_buffer()
 int File::read_samples(Samples *samples, int64_t len)
 {
 // Never try to read more samples than exist in the file
-       if (current_sample + len > asset->audio_length) {
+       if (asset->audio_length >= 0 && current_sample + len > asset->audio_length) {
                len = asset->audio_length - current_sample;
        }
        if(len <= 0) return 0;
@@ -1173,8 +1176,8 @@ int File::read_frame(VFrame *frame, int is_thread)
        if(debug) PRINT_TRACE
        int supported_colormodel = colormodel_supported(frame->get_color_model());
        int advance_position = 1;
-       int cache_active = use_cache || asset->video_length < 0 ? 1 : 0;
-       int64_t cache_position = asset->video_length >= 0 ? current_frame : -1;
+       int cache_active = use_cache || asset->single_frame ? 1 : 0;
+       int64_t cache_position = !asset->single_frame ? current_frame : -1;
 // Test cache
        if( cache_active && frame_cache->get_frame(frame, cache_position,
                        current_layer, asset->frame_rate) )
index 0422596412183e67a4f2159e028f8a2bedd91a7c..2ed383fd12749fe4842f8872981c16933e3956f0 100644 (file)
@@ -339,6 +339,7 @@ int FileList::read_frame(VFrame *frame)
        }
        else
        {
+               asset->single_frame = 1;
 // Allocate and decompress single frame into new temporary
 //printf("FileList::read_frame %d\n", frame->get_color_model());
                if(!temp || temp->get_color_model() != frame->get_color_model())
index 82d2292b2994a09c1578c329f38d58e0b34568db..9166b80bdc7d20e2ba10005142c0ed68a29a0299 100644 (file)
@@ -44,8 +44,10 @@ extern "C"
 
 
 // Paths relative to the exe path
+#ifdef HAVE_FESTIVAL_BUILTIN
 #define FESTIVAL_PATH "/festival"
 #define FESTIVAL_LIB_PATH "/lib/"
+#endif
 #define ASSET_PATH "/models/"
 #define FREAD_SIZE 0x10000
 #define WAVHEADER 44
@@ -1299,10 +1301,14 @@ void SceneChunk::render()
                uuid_unparse(temp_id, script_path + strlen(script_path));
                FILE *script_fd = fopen(script_path, "w");
 
+#ifdef HAVE_FESTIVAL_BUILTIN
                sprintf(command_line, "%s%s --libdir %s%s -b %s", 
                        script->file->exec_path, FESTIVAL_PATH,
                        script->file->exec_path, FESTIVAL_LIB_PATH,
                        script_path);
+#else
+               sprintf(command_line, "festival -b %s", script_path);
+#endif
 
 // Create script.
 // The maximum text length is limited with the command line
index 10af4ffbd2020901a2807209709cb094ebb3265a..50dfc6cfde6664a34d02a4594eb0aff0bf68ef97 100644 (file)
@@ -360,15 +360,7 @@ PreferencesWindow::PreferencesWindow(MWindow *mwindow,
        int x,
        int y)
  : BC_Window(_(PROGRAM_NAME ": Preferences"),
-       x,
-       y,
-       WIDTH,
-       HEIGHT,
-       (int)BC_INFINITY,
-       (int)BC_INFINITY,
-       0,
-       0,
-       1)
+       x,y, WIDTH,HEIGHT, WIDTH,HEIGHT, 1,0,1)
 {
        this->mwindow = mwindow;
        this->thread = thread;
index 21e33c20f5cdcdcc33e159959d060af007e2f97c..9010ac2939aa3dad6c7dd09afd86e245a0de0fbc 100644 (file)
@@ -209,10 +209,9 @@ void MainPackageRenderer::set_progress(int64_t value)
                                eta,
                                TIME_HMS2);
 
-                       printf(_("\r%d%% ETA: %s      "), (int)(100 *
-                               (float)render->total_rendered /
-                                       render->progress_max),
-                               string);
+                       printf("\r%d%% %s: %s      ",
+                               (int)(100 * (float)render->total_rendered / render->progress_max),
+                               _("ETA"), string);
                        fflush(stdout);
                        render->last_eta = current_eta;
                }
index 8b794be17c84d338d7e63a54b1feb35c226b36ca..1d4121d8990878035cb2fa00ccc162d12b609b12 100644 (file)
@@ -18,7 +18,8 @@ model: knight01
 
 AIRFORCE
 
-voice: nitech_us_clb_arctic_hts
+#voice: nitech_us_clb_arctic_hts
+voice: nitech_us_slt_arctic_hts
 #model: knight01
 model: warrior01
 #model: amazon01
index 81a523dbdbd1706560fb75e10ecce1aea921c3d5..6fee32b14ef371ca5aaa3d93b515092e0594262f 100644 (file)
@@ -88,7 +88,12 @@ void ZoomBar::create_objects()
        track_zoom->zoom_tumbler->set_tooltip(_("Height of tracks in the timeline"));
        x += track_zoom->get_w() + 10;
 
-       add_subwindow(auto_type = new AutoTypeMenu(mwindow, this, x, y));
+       int wid = 120;
+       for( int i=AUTOGROUPTYPE_AUDIO_FADE; i<=AUTOGROUPTYPE_Y; ++i ) {
+               int ww = BC_GenericButton::calculate_w(this, AutoTypeMenu::to_text(i));
+               if( ww > wid ) wid = ww;
+       }
+       add_subwindow(auto_type = new AutoTypeMenu(mwindow, this, x, y, wid));
        auto_type->create_objects();
        x += auto_type->get_w() + 10;
 #define DEFAULT_TEXT "000.00 to 000.00"
@@ -448,8 +453,8 @@ int AutoZoom::handle_down_event()
 
 
 
-AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y)
-       : BC_PopupMenu(x, y, 120,to_text(mwindow->edl->local_session->zoombar_showautotype), 1)
+AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y, int wid)
+       : BC_PopupMenu(x, y, wid, to_text(mwindow->edl->local_session->zoombar_showautotype), 1)
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
index a8ab324fb5cb250455a03fd44148c46dec3027db..cce3bffebf3c02cbe357dd69bbe16c897fdcc021 100644 (file)
@@ -116,10 +116,8 @@ public:
 class AutoTypeMenu : public BC_PopupMenu
 {
 public:
-       AutoTypeMenu(MWindow *mwindow,
-                    ZoomBar *zoombar,
-                    int x, 
-                    int y);
+       AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar,
+                    int x, int y, int wid);
        void create_objects();
        static const char* to_text(int shape);
        static int from_text(char *text);
index 8ca50be0cea40ba85d704083e068bfcc427274d5..72e81c28e792b3ee9bdb7401d3992e0db15f9496 100644 (file)
@@ -134,7 +134,7 @@ PKG_3RD([fdk],[auto],
   [ libAACdec/include libAACenc/include libSYS/include ])
 
 PKG_3RD([ffmpeg],[yes],
-  [ffmpeg-3.0],
+  [ffmpeg-3.1.1],
   [ libavutil/libavutil.a \
     libavcodec/libavcodec.a \
     libpostproc/libpostproc.a \
index 1e2b187dd78b1ef5ea9c3cb4a5f5a695e9c2da1f..8e3012b905579b748d3a5998ecd4393775724d4f 100644 (file)
@@ -71,6 +71,7 @@ equalizer frequency=1000.000000:width_type=1:width=200.000000:gain=-10.000000
 #ffbuffersink
 #fftfilt
 #field
+#fieldhint
 #fieldmatch
 #fieldorder
 #fifo
@@ -117,6 +118,7 @@ hflip
 #pullup
 #qp
 #random
+#remap
 #removelogo
 #repeatfields
 #replaygain
index 13450dea6a84d29f64d828a95bba5b54b6238b2a..8caa5d106877c83b15ab55c1403cb4862cfeff45 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_blond
 OBJS = $(OBJDIR)/blondtheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/blondtheme.o: blondtheme.C
index d9b6fcaebc8e1070305741871df22c84c9e17884..0f26ac860442d75a9e26d31fa3f611b7a605a1f2 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_blue
 OBJS = $(OBJDIR)/bluetheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/bluetheme.o: bluetheme.C
index a0ab42f4c2c843312e997b9c3b5b100c7b272770..5ce04cca67d90d097ca3b40b088ff0d754c2675b 100644 (file)
@@ -4,10 +4,6 @@ PLUGIN=theme_blue_dot
 OBJS = $(OBJDIR)/bluedottheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-LIBRAW_DIR := $(shell cd ../../thirdparty/libraw1394*; pwd)
-CFLAGS += -I../../$(AVC_DIR) -I../../$(LIBRAW_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/bluedottheme.o: bluedottheme.C
index 25fc65d1181e326f6475dfdcae29842550643eea..dd5ec10ace9769f5a06cd8b7da92c1f39372ef50 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_bright
 OBJS = $(OBJDIR)/brighttheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/brighttheme.o: brighttheme.C
index e4ec758985c45d23e9b14876e4d90dd28a9bf2f5..17dcd3e86f53496428cbaa1753ce682aba8520b6 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_hulk
 OBJS = $(OBJDIR)/hulktheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/hulktheme.o: hulktheme.C
index ba2d7e2d7fc6eba1e29fa40422a64bd35883de81..cf8553e1e751d4695bf2102d89e84ebf22b47cf6 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_pinklady
 OBJS = $(OBJDIR)/pinkladytheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/pinkladytheme.o: pinkladytheme.C
index 45eb3a6e32a13142bc60f6eca229e2ad4099abe6..48a8bc93d5b00cabcf66dfaf0f5a59864667844c 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_suv
 OBJS = $(OBJDIR)/suv.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/suv.o: suv.C
index 11291cc9a9f35069271d479f0cb883de1ad01ab2..e04f61fbda19d37ca6eaf621a5fa8deea830946a 100644 (file)
@@ -4,9 +4,6 @@ PLUGIN = theme_unflat
 OBJS = $(OBJDIR)/unflattheme.o
 OUTPUT_THEME = $(OUTPUT)
 
-AVC_DIR := $(shell cd ../../thirdparty/libavc*; pwd)
-CFLAGS += -I$(AVC_DIR)
-
 include ../../plugin_config
 
 $(OBJDIR)/unflattheme.o: unflattheme.C
index 17178fc36dd5f271be8a80ec08c4287a14dcd070..72d91f3ed3cbd9729dc852d89df0b0777eccf98e 100644 (file)
@@ -385,9 +385,9 @@ int TitleWindow::resize_event(int w, int h)
 #endif
        size_title->reposition_window(size_title->get_x(), size_title->get_y());
        size->reposition_window(size->get_x(), size->get_y());
-       size_tumbler->reposition_window(size_title->get_x(), size_title->get_y());
+       size_tumbler->reposition_window(size_tumbler->get_x(), size_tumbler->get_y());
        pitch_title->reposition_window(pitch_title->get_x(), pitch_title->get_y());
-       pitch->reposition_window(size->get_x(), size->get_y());
+       pitch->reposition_window(pitch->get_x(), pitch->get_y());
 
 #ifndef X_HAVE_UTF8_STRING
        encoding->reposition_window(encoding->get_x(), encoding->get_y());
diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg-3.0.tar.xz b/cinelerra-5.1/thirdparty/src/ffmpeg-3.0.tar.xz
deleted file mode 100644 (file)
index 61e7b57..0000000
Binary files a/cinelerra-5.1/thirdparty/src/ffmpeg-3.0.tar.xz and /dev/null differ
diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg-3.1.1.tar.xz b/cinelerra-5.1/thirdparty/src/ffmpeg-3.1.1.tar.xz
new file mode 100644 (file)
index 0000000..c72fe5e
Binary files /dev/null and b/cinelerra-5.1/thirdparty/src/ffmpeg-3.1.1.tar.xz differ
diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg.patch3 b/cinelerra-5.1/thirdparty/src/ffmpeg.patch3
new file mode 100644 (file)
index 0000000..3b1783d
--- /dev/null
@@ -0,0 +1,78 @@
+diff -ur ffmpeg-3.1.1.orig/libavcodec/avcodec.h ffmpeg-3.1.1/libavcodec/avcodec.h
+--- ffmpeg-3.1.1.orig/libavcodec/avcodec.h     2016-06-26 17:54:28.000000000 -0600
++++ ffmpeg-3.1.1/libavcodec/avcodec.h  2016-07-08 09:32:20.040623502 -0600
+@@ -4700,7 +4700,7 @@
+  *
+ * @deprecated Use avcodec_send_packet() and avcodec_receive_frame().
+  */
+-attribute_deprecated
++//attribute_deprecated
+ int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
+                           int *got_frame_ptr, const AVPacket *avpkt);
+@@ -4749,7 +4749,7 @@
+  *
+  * @deprecated Use avcodec_send_packet() and avcodec_receive_frame().
+  */
+-attribute_deprecated
++//attribute_deprecated
+ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
+                          int *got_picture_ptr,
+                          const AVPacket *avpkt);
+@@ -5218,7 +5218,7 @@
+  *
+  * @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead
+  */
+-attribute_deprecated
++//attribute_deprecated
+ int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
+                           const AVFrame *frame, int *got_packet_ptr);
+@@ -5257,7 +5257,7 @@
+  *
+  * @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead
+  */
+-attribute_deprecated
++//attribute_deprecated
+ int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
+                           const AVFrame *frame, int *got_packet_ptr);
+@@ -5778,7 +5778,7 @@
+  * @return a bitstream filter context if a matching filter was found
+  * and successfully initialized, NULL otherwise
+  */
+-attribute_deprecated
++//attribute_deprecated
+ AVBitStreamFilterContext *av_bitstream_filter_init(const char *name);
+ /**
+@@ -5810,7 +5810,7 @@
+  * its starting address). A special case is if *poutbuf was set to NULL and
+  * *poutbuf_size was set to 0, which indicates the packet should be dropped.
+  */
+-attribute_deprecated
++//attribute_deprecated
+ int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
+                                AVCodecContext *avctx, const char *args,
+                                uint8_t **poutbuf, int *poutbuf_size,
+@@ -5822,7 +5822,7 @@
+  * @param bsf the bitstream filter context created with
+  * av_bitstream_filter_init(), can be NULL
+  */
+-attribute_deprecated
++//attribute_deprecated
+ void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
+ /**
+diff -ur ffmpeg-3.1.1.orig/libavformat/avformat.h ffmpeg-3.1.1/libavformat/avformat.h
+--- ffmpeg-3.1.1.orig/libavformat/avformat.h   2016-06-30 19:00:55.000000000 -0600
++++ ffmpeg-3.1.1/libavformat/avformat.h        2016-07-08 09:33:16.610668989 -0600
+@@ -876,7 +876,7 @@
+     /**
+      * @deprecated use the codecpar struct instead
+      */
+-    attribute_deprecated
++//    attribute_deprecated
+     AVCodecContext *codec;
+ #endif
+     void *priv_data;