From: Good Guy Date: Fri, 8 Jul 2016 18:54:11 +0000 (-0600) Subject: filescene/single frame fixes, layout improvements, ffmpeg 3.1.1 X-Git-Url: https://git.cinelerra-gg.org/git/?a=commitdiff_plain;h=3b4d085f4235e6313c25871877180a1a989e5b9f;p=goodguy%2Fhistory.git filescene/single frame fixes, layout improvements, ffmpeg 3.1.1 --- diff --git a/cinelerra-5.1/cinelerra/asset.C b/cinelerra-5.1/cinelerra/asset.C index 5350004c..6aa73d7b 100644 --- a/cinelerra-5.1/cinelerra/asset.C +++ b/cinelerra-5.1/cinelerra/asset.C @@ -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; diff --git a/cinelerra-5.1/cinelerra/asset.h b/cinelerra-5.1/cinelerra/asset.h index 51f77503..479cccbb 100644 --- a/cinelerra-5.1/cinelerra/asset.h +++ b/cinelerra-5.1/cinelerra/asset.h @@ -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; diff --git a/cinelerra-5.1/cinelerra/assetedit.C b/cinelerra-5.1/cinelerra/assetedit.C index dbdabf36..9d878072 100644 --- a/cinelerra-5.1/cinelerra/assetedit.C +++ b/cinelerra-5.1/cinelerra/assetedit.C @@ -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; diff --git a/cinelerra-5.1/cinelerra/file.C b/cinelerra-5.1/cinelerra/file.C index b9d161e9..f19ce018 100644 --- a/cinelerra-5.1/cinelerra/file.C +++ b/cinelerra-5.1/cinelerra/file.C @@ -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) ) diff --git a/cinelerra-5.1/cinelerra/filelist.C b/cinelerra-5.1/cinelerra/filelist.C index 04225964..2ed383fd 100644 --- a/cinelerra-5.1/cinelerra/filelist.C +++ b/cinelerra-5.1/cinelerra/filelist.C @@ -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()) diff --git a/cinelerra-5.1/cinelerra/filescene.C b/cinelerra-5.1/cinelerra/filescene.C index 82d2292b..9166b80b 100644 --- a/cinelerra-5.1/cinelerra/filescene.C +++ b/cinelerra-5.1/cinelerra/filescene.C @@ -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 diff --git a/cinelerra-5.1/cinelerra/preferencesthread.C b/cinelerra-5.1/cinelerra/preferencesthread.C index 10af4ffb..50dfc6cf 100644 --- a/cinelerra-5.1/cinelerra/preferencesthread.C +++ b/cinelerra-5.1/cinelerra/preferencesthread.C @@ -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; diff --git a/cinelerra-5.1/cinelerra/render.C b/cinelerra-5.1/cinelerra/render.C index 21e33c20..9010ac29 100644 --- a/cinelerra-5.1/cinelerra/render.C +++ b/cinelerra-5.1/cinelerra/render.C @@ -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; } diff --git a/cinelerra-5.1/cinelerra/tests/text2movie b/cinelerra-5.1/cinelerra/tests/text2movie index 8b794be1..1d4121d8 100644 --- a/cinelerra-5.1/cinelerra/tests/text2movie +++ b/cinelerra-5.1/cinelerra/tests/text2movie @@ -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 diff --git a/cinelerra-5.1/cinelerra/zoombar.C b/cinelerra-5.1/cinelerra/zoombar.C index 81a523db..6fee32b1 100644 --- a/cinelerra-5.1/cinelerra/zoombar.C +++ b/cinelerra-5.1/cinelerra/zoombar.C @@ -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; diff --git a/cinelerra-5.1/cinelerra/zoombar.h b/cinelerra-5.1/cinelerra/zoombar.h index a8ab324f..cce3bffe 100644 --- a/cinelerra-5.1/cinelerra/zoombar.h +++ b/cinelerra-5.1/cinelerra/zoombar.h @@ -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); diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac index 8ca50be0..72e81c28 100644 --- a/cinelerra-5.1/configure.ac +++ b/cinelerra-5.1/configure.ac @@ -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 \ diff --git a/cinelerra-5.1/ffmpeg/plugin.opts b/cinelerra-5.1/ffmpeg/plugin.opts index 1e2b187d..8e3012b9 100644 --- a/cinelerra-5.1/ffmpeg/plugin.opts +++ b/cinelerra-5.1/ffmpeg/plugin.opts @@ -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 diff --git a/cinelerra-5.1/plugins/theme_blond/Makefile b/cinelerra-5.1/plugins/theme_blond/Makefile index 13450dea..8caa5d10 100644 --- a/cinelerra-5.1/plugins/theme_blond/Makefile +++ b/cinelerra-5.1/plugins/theme_blond/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_blue/Makefile b/cinelerra-5.1/plugins/theme_blue/Makefile index d9b6fcae..0f26ac86 100644 --- a/cinelerra-5.1/plugins/theme_blue/Makefile +++ b/cinelerra-5.1/plugins/theme_blue/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/Makefile b/cinelerra-5.1/plugins/theme_blue_dot/Makefile index a0ab42f4..5ce04cca 100644 --- a/cinelerra-5.1/plugins/theme_blue_dot/Makefile +++ b/cinelerra-5.1/plugins/theme_blue_dot/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_bright/Makefile b/cinelerra-5.1/plugins/theme_bright/Makefile index 25fc65d1..dd5ec10a 100644 --- a/cinelerra-5.1/plugins/theme_bright/Makefile +++ b/cinelerra-5.1/plugins/theme_bright/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_hulk/Makefile b/cinelerra-5.1/plugins/theme_hulk/Makefile index e4ec7589..17dcd3e8 100644 --- a/cinelerra-5.1/plugins/theme_hulk/Makefile +++ b/cinelerra-5.1/plugins/theme_hulk/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_pinklady/Makefile b/cinelerra-5.1/plugins/theme_pinklady/Makefile index ba2d7e2d..cf8553e1 100644 --- a/cinelerra-5.1/plugins/theme_pinklady/Makefile +++ b/cinelerra-5.1/plugins/theme_pinklady/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_suv/Makefile b/cinelerra-5.1/plugins/theme_suv/Makefile index 45eb3a6e..48a8bc93 100644 --- a/cinelerra-5.1/plugins/theme_suv/Makefile +++ b/cinelerra-5.1/plugins/theme_suv/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/theme_unflat/Makefile b/cinelerra-5.1/plugins/theme_unflat/Makefile index 11291cc9..e04f61fb 100644 --- a/cinelerra-5.1/plugins/theme_unflat/Makefile +++ b/cinelerra-5.1/plugins/theme_unflat/Makefile @@ -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 diff --git a/cinelerra-5.1/plugins/titler/titlewindow.C b/cinelerra-5.1/plugins/titler/titlewindow.C index 17178fc3..72d91f3e 100644 --- a/cinelerra-5.1/plugins/titler/titlewindow.C +++ b/cinelerra-5.1/plugins/titler/titlewindow.C @@ -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 index 61e7b57e..00000000 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 index 00000000..c72fe5e7 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 index 00000000..3b1783d7 --- /dev/null +++ b/cinelerra-5.1/thirdparty/src/ffmpeg.patch3 @@ -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;