Author: malat Date: 2013-05-15 15:02:09 +0000 (Wed, 15 May 2013) New Revision: 13589
Modified: trunk/packages/vxl/trunk/debian/patches/libav_trunk.patch Log: Fix typo in patch Modified: trunk/packages/vxl/trunk/debian/patches/libav_trunk.patch =================================================================== --- trunk/packages/vxl/trunk/debian/patches/libav_trunk.patch 2013-05-15 14:57:07 UTC (rev 13588) +++ trunk/packages/vxl/trunk/debian/patches/libav_trunk.patch 2013-05-15 15:02:09 UTC (rev 13589) @@ -5,8 +5,8 @@ Index: vxl-1.17.0/core/vidl/vidl_ffmpeg_ostream_v4.txx =================================================================== ---- vxl-1.17.0.orig/core/vidl/vidl_ffmpeg_ostream_v4.txx 2011-12-25 18:00:07.000000000 +0000 -+++ vxl-1.17.0/core/vidl/vidl_ffmpeg_ostream_v4.txx 2013-05-15 14:51:03.555433710 +0000 +--- vxl-1.17.0.orig/core/vidl/vidl_ffmpeg_ostream_v4.txx 2013-05-15 16:57:56.171429064 +0200 ++++ vxl-1.17.0/core/vidl/vidl_ffmpeg_ostream_v4.txx 2013-05-15 16:58:36.183428612 +0200 @@ -25,11 +25,21 @@ extern "C" { #if FFMPEG_IN_SEVERAL_DIRECTORIES @@ -67,8 +67,8 @@ close(); Index: vxl-1.17.0/core/vidl/vidl_ffmpeg_istream_v3.txx =================================================================== ---- vxl-1.17.0.orig/core/vidl/vidl_ffmpeg_istream_v3.txx 2012-05-02 19:46:43.000000000 +0000 -+++ vxl-1.17.0/core/vidl/vidl_ffmpeg_istream_v3.txx 2013-05-15 14:45:52.623437208 +0000 +--- vxl-1.17.0.orig/core/vidl/vidl_ffmpeg_istream_v3.txx 2013-05-15 16:57:56.195429062 +0200 ++++ vxl-1.17.0/core/vidl/vidl_ffmpeg_istream_v3.txx 2013-05-15 16:58:36.183428612 +0200 @@ -143,7 +143,7 @@ } @@ -87,558 +87,3 @@ return false; } -Index: vxl-1.17.0/home/mathieu/debian/debian-med/trunk/packages/vxl/trunk/vxl-1.17.0/core/vidl/vidl_ffmpeg_ostream_v4.txx -=================================================================== ---- vxl-1.17.0.orig/home/mathieu/debian/debian-med/trunk/packages/vxl/trunk/vxl-1.17.0/core/vidl/vidl_ffmpeg_ostream_v4.txx 2013-05-15 14:45:08.203437709 +0000 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,550 +0,0 @@ --// This is core/vidl/vidl_ffmpeg_ostream_v4.txx --#ifndef vidl_ffmpeg_ostream_v4_txx_ --#define vidl_ffmpeg_ostream_v4_txx_ --#include "vidl_ffmpeg_ostream.h" --//: --// \file --// \author Matt Leotta --// \author Amitha Perera --// \author David Law --// \date 26 Jan 2009 --// --// Update implementation based on --// ffmpeg git hash 139f3ac42dcf24eb8c59af4aaab4e9afdccbc996 --// --//----------------------------------------------------------------------------- -- --#include "vidl_ffmpeg_init.h" --#include "vidl_ffmpeg_convert.h" --#include "vidl_frame.h" --#include "vidl_convert.h" --#include <vcl_cstring.h> --#include <vcl_climits.h> --#include <vil/vil_memory_chunk.h> -- --extern "C" { --#if FFMPEG_IN_SEVERAL_DIRECTORIES --#include <libavformat/avformat.h> --#include <libavutil/mem.h> --#else --#include <ffmpeg/avformat.h> --#endif --} -- --// Define deprecated codec flags as private --#define CODEC_FLAG_H263P_UMV 0x02000000 ///< unlimited motion vector --#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 --#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H.263 alternative inter VLC --#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC --#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning. --#define CODEC_FLAG_ALT_SCAN 0x00100000 ///< Use alternate scan. --#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data. -- --//----------------------------------------------------------------------------- -- -- --struct vidl_ffmpeg_ostream::pimpl --{ -- pimpl() -- : fmt_cxt_( 0 ), -- file_opened_( false ), -- codec_opened_( false ), -- cur_frame_( 0 ), -- video_rc_eq_(NULL) -- { } -- -- AVFormatContext* fmt_cxt_; -- bool file_opened_; -- bool codec_opened_; -- vil_memory_chunk_sptr bit_buf_; -- unsigned int cur_frame_; -- char* video_rc_eq_; --}; -- -- --//----------------------------------------------------------------------------- -- -- --//: Constructor --vidl_ffmpeg_ostream:: --vidl_ffmpeg_ostream() -- : os_( new vidl_ffmpeg_ostream::pimpl ) --{ -- vidl_ffmpeg_init(); --} -- -- --//: Destructor --vidl_ffmpeg_ostream:: --~vidl_ffmpeg_ostream() --{ -- close(); -- delete os_; --} -- -- --//: Constructor - opens a stream --vidl_ffmpeg_ostream:: --vidl_ffmpeg_ostream(const vcl_string& filename, -- const vidl_ffmpeg_ostream_params& params) -- : os_( new vidl_ffmpeg_ostream::pimpl ), -- filename_(filename), params_(params) --{ -- vidl_ffmpeg_init(); --} -- -- --//: Open the stream --bool --vidl_ffmpeg_ostream:: --open() --{ -- // Close any open files -- close(); -- -- // a raw video packet is the same size as the input image. Others -- // are smaller. -- os_->bit_buf_ = new vil_memory_chunk( params_.ni_ * params_.nj_ * 3, VIL_PIXEL_FORMAT_BYTE ); -- -- os_->fmt_cxt_ = avformat_alloc_context(); -- -- AVOutputFormat* file_oformat = 0; -- if ( params_.file_format_ == vidl_ffmpeg_ostream_params::GUESS ) { -- file_oformat = av_guess_format(NULL, filename_.c_str(), NULL); -- if (!file_oformat) { -- vcl_cerr << "ffmpeg: Unable for find a suitable output format for " -- << filename_ << '\n'; -- close(); -- return false; -- } -- } -- else { -- close(); -- return false; -- } -- -- os_->fmt_cxt_->oformat = file_oformat; -- os_->fmt_cxt_->nb_streams = 0; -- -- // Create stream -- AVStream* st = avformat_new_stream( os_->fmt_cxt_, 0 ); -- if ( !st ) { -- vcl_cerr << "ffmpeg: could not alloc stream\n"; -- close(); -- return false; -- } -- -- //os_->fmt_cxt_->nb_streams = 1; -- -- AVCodecContext *video_enc = st->codec; -- -- if (vcl_strcmp(file_oformat->name, "mp4") != 0 || -- vcl_strcmp(file_oformat->name, "mov") != 0 || -- vcl_strcmp(file_oformat->name, "3gp") != 0 ) -- video_enc->flags |= CODEC_FLAG_GLOBAL_HEADER; -- -- video_enc->codec_type = AVMEDIA_TYPE_VIDEO; -- -- switch ( params_.encoder_ ) -- { -- case vidl_ffmpeg_ostream_params::DEFAULT: -- video_enc->codec_id = file_oformat->video_codec; -- break; -- case vidl_ffmpeg_ostream_params::MPEG4: -- video_enc->codec_id = CODEC_ID_MPEG4; -- break; -- case vidl_ffmpeg_ostream_params::MPEG2VIDEO: -- video_enc->codec_id = CODEC_ID_MPEG2VIDEO; -- break; -- case vidl_ffmpeg_ostream_params::MSMPEG4V2: -- video_enc->codec_id = CODEC_ID_MSMPEG4V2; -- break; -- case vidl_ffmpeg_ostream_params::RAWVIDEO: -- video_enc->codec_id = CODEC_ID_RAWVIDEO; -- break; -- case vidl_ffmpeg_ostream_params::LJPEG: -- video_enc->codec_id = CODEC_ID_LJPEG; -- break; -- case vidl_ffmpeg_ostream_params::HUFFYUV: -- video_enc->codec_id = CODEC_ID_HUFFYUV; -- break; -- case vidl_ffmpeg_ostream_params::DVVIDEO: -- video_enc->codec_id = CODEC_ID_DVVIDEO; -- break; -- default: -- vcl_cout << "ffmpeg: Unknown encoder type\n"; -- return false; -- } -- -- AVCodec* codec = avcodec_find_encoder( video_enc->codec_id ); -- if ( !codec ) -- { -- vcl_cerr << "ffmpeg_writer:: couldn't find encoder for " << video_enc->codec_id << '\n'; -- return false; -- } -- -- video_enc->bit_rate = params_.bit_rate_ * 1000; -- video_enc->bit_rate_tolerance = params_.video_bit_rate_tolerance_; -- video_enc->time_base.num = 1000; -- video_enc->time_base.den = int(params_.frame_rate_*1000); -- -- if ( codec && codec->supported_framerates ) -- { -- AVRational const* p = codec->supported_framerates; -- AVRational req = { video_enc->time_base.den, video_enc->time_base.num }; -- AVRational const* best = NULL; -- AVRational best_error = { INT_MAX, 1 }; -- for (; p->den!=0; p++) -- { -- AVRational error = av_sub_q(req, *p); -- if ( error.num < 0 ) error.num *= -1; -- if ( av_cmp_q( error, best_error ) < 0 ) -- { -- best_error= error; -- best= p; -- } -- } -- video_enc->time_base.den= best->num; -- video_enc->time_base.num= best->den; -- } -- -- video_enc->width = params_.ni_; -- video_enc->height = params_.nj_; -- video_enc->sample_aspect_ratio = av_d2q(params_.frame_aspect_ratio_*params_.ni_/params_.nj_, 255); -- -- // Our source is packed RGB. Use that if possible. -- video_enc->pix_fmt = PIX_FMT_RGB24; -- if ( codec && codec->pix_fmts ) -- { -- const enum PixelFormat* p= codec->pix_fmts; -- for ( ; *p != -1; p++ ) -- { -- if ( *p == video_enc->pix_fmt ) -- break; -- } -- if ( *p == -1 ) -- video_enc->pix_fmt = codec->pix_fmts[0]; -- } -- else if ( codec && ( codec->id == CODEC_ID_RAWVIDEO || -- codec->id == CODEC_ID_HUFFYUV ) ) -- { -- // these formats only support the YUV input image formats -- video_enc->pix_fmt = PIX_FMT_YUV420P; -- } -- -- if (!params_.intra_only_) -- video_enc->gop_size = params_.gop_size_; -- else -- video_enc->gop_size = 0; -- if (params_.video_qscale_ || params_.same_quality_) -- { -- video_enc->flags |= CODEC_FLAG_QSCALE; -- video_enc->global_quality = FF_QP2LAMBDA * params_.video_qscale_; -- } -- // if (bitexact) -- // video_enc->flags |= CODEC_FLAG_BITEXACT; -- -- video_enc->mb_decision = params_.mb_decision_; -- video_enc->mb_cmp = params_.mb_cmp_; -- video_enc->ildct_cmp = params_.ildct_cmp_; -- video_enc->me_sub_cmp = params_.sub_cmp_; -- video_enc->me_cmp = params_.cmp_; -- video_enc->me_pre_cmp = params_.pre_cmp_; -- video_enc->pre_me = params_.pre_me_; -- video_enc->lumi_masking = params_.lumi_mask_; -- video_enc->dark_masking = params_.dark_mask_; -- video_enc->spatial_cplx_masking = params_.scplx_mask_; -- video_enc->temporal_cplx_masking = params_.tcplx_mask_; -- video_enc->p_masking = params_.p_mask_; -- video_enc->quantizer_noise_shaping= params_.qns_; -- -- if (params_.use_umv_) -- { -- video_enc->flags |= CODEC_FLAG_H263P_UMV; -- } -- if (params_.use_ss_) -- { -- video_enc->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; -- } -- if (params_.use_aiv_) -- { -- video_enc->flags |= CODEC_FLAG_H263P_AIV; -- } -- if (params_.use_4mv_) -- { -- video_enc->flags |= CODEC_FLAG_4MV; -- } -- if (params_.use_obmc_) -- { -- video_enc->flags |= CODEC_FLAG_OBMC; -- } -- if (params_.use_loop_) -- { -- video_enc->flags |= CODEC_FLAG_LOOP_FILTER; -- } -- -- if (params_.use_part_) -- { -- video_enc->flags |= CODEC_FLAG_PART; -- } -- if (params_.use_alt_scan_) -- { -- video_enc->flags |= CODEC_FLAG_ALT_SCAN; -- } -- if (params_.use_scan_offset_) -- { -- video_enc->flags |= CODEC_FLAG_SVCD_SCAN_OFFSET; -- } -- if (params_.closed_gop_) -- { -- video_enc->flags |= CODEC_FLAG_CLOSED_GOP; -- } -- if (params_.use_qpel_) -- { -- video_enc->flags |= CODEC_FLAG_QPEL; -- } -- if (params_.use_qprd_) -- { -- video_enc->flags |= CODEC_FLAG_QP_RD; -- } -- if (params_.use_cbprd_) -- { -- video_enc->flags |= CODEC_FLAG_CBP_RD; -- } -- if (params_.b_frames_) -- { -- video_enc->max_b_frames = params_.b_frames_; -- video_enc->b_frame_strategy = 0; -- video_enc->b_quant_factor = 2.0; -- } -- if (params_.do_interlace_dct_) -- { -- video_enc->flags |= CODEC_FLAG_INTERLACED_DCT; -- } -- if (params_.do_interlace_me_) -- { -- video_enc->flags |= CODEC_FLAG_INTERLACED_ME; -- } -- video_enc->qmin = params_.video_qmin_; -- video_enc->qmax = params_.video_qmax_; -- video_enc->lmin = params_.video_lmin_; -- video_enc->lmax = params_.video_lmax_; -- video_enc->max_qdiff = params_.video_qdiff_; -- video_enc->qblur = params_.video_qblur_; -- video_enc->qcompress = params_.video_qcomp_; -- -- // delete when the stream is closed -- os_->video_rc_eq_ = new char[params_.video_rc_eq_.length()+1]; -- vcl_strcpy(os_->video_rc_eq_, params_.video_rc_eq_.c_str()); -- video_enc->rc_eq = os_->video_rc_eq_; -- -- video_enc->debug = params_.debug_; -- video_enc->debug_mv = params_.debug_mv_; -- video_enc->thread_count = 1; -- -- video_enc->rc_max_rate = params_.video_rc_max_rate_; -- video_enc->rc_min_rate = params_.video_rc_min_rate_; -- video_enc->rc_buffer_size = params_.video_rc_buffer_size_; -- video_enc->rc_buffer_aggressivity= params_.video_rc_buffer_aggressivity_; -- video_enc->rc_initial_cplx= params_.video_rc_initial_cplx_; -- video_enc->i_quant_factor = params_.video_i_qfactor_; -- video_enc->b_quant_factor = params_.video_b_qfactor_; -- video_enc->i_quant_offset = params_.video_i_qoffset_; -- video_enc->b_quant_offset = params_.video_b_qoffset_; -- video_enc->intra_quant_bias = params_.video_intra_quant_bias_; -- video_enc->inter_quant_bias = params_.video_inter_quant_bias_; -- video_enc->dct_algo = params_.dct_algo_; -- video_enc->idct_algo = params_.idct_algo_; -- video_enc->me_threshold= params_.me_threshold_; -- video_enc->mb_threshold= params_.mb_threshold_; -- video_enc->intra_dc_precision= params_.intra_dc_precision_ - 8; -- video_enc->strict_std_compliance = params_.strict_; -- video_enc->error_rate = params_.error_rate_; -- video_enc->noise_reduction= params_.noise_reduction_; -- video_enc->scenechange_threshold= params_.sc_threshold_; -- video_enc->me_range = params_.me_range_; -- video_enc->coder_type= params_.coder_; -- video_enc->context_model= params_.context_; -- video_enc->prediction_method= params_.predictor_; -- -- if (params_.do_psnr_) -- video_enc->flags|= CODEC_FLAG_PSNR; -- -- video_enc->me_method = params_.me_method_; -- -- // two pass mode -- if (params_.do_pass_) -- { -- if (params_.do_pass_ == 1) -- { -- video_enc->flags |= CODEC_FLAG_PASS1; -- } -- else -- { -- video_enc->flags |= CODEC_FLAG_PASS2; -- } -- } -- -- vcl_strncpy( os_->fmt_cxt_->filename, filename_.c_str(), 1023 ); -- -- if ( avio_open( &os_->fmt_cxt_->pb, filename_.c_str(), AVIO_FLAG_WRITE) < 0 ) -- { -- vcl_cerr << "ffmpeg: couldn't open " << filename_ << " for writing\n"; -- close(); -- return false; -- } -- os_->file_opened_ = true; -- -- //dump_format( os_->fmt_cxt_, 1, filename_, 1 ); -- -- if ( avcodec_open( video_enc, codec ) < 0 ) -- { -- vcl_cerr << "ffmpeg: couldn't open codec\n"; -- close(); -- return false; -- } -- os_->codec_opened_ = true; -- -- if ( avformat_write_header( os_->fmt_cxt_, NULL ) < 0 ) -- { -- vcl_cerr << "ffmpeg: couldn't write header\n"; -- close(); -- return false; -- } -- -- return true; --} -- -- --//: Close the stream --void --vidl_ffmpeg_ostream:: --close() --{ -- delete os_->video_rc_eq_; -- os_->video_rc_eq_ = NULL; -- -- if ( os_->fmt_cxt_ ) { -- -- if ( os_->file_opened_ ) { -- av_write_trailer( os_->fmt_cxt_ ); -- avio_close( os_->fmt_cxt_->pb ); -- os_->file_opened_ = false; -- } -- -- if ( os_->fmt_cxt_->nb_streams > 0 ) { -- if ( os_->codec_opened_ ) { -- for ( unsigned i = 0; i < os_->fmt_cxt_->nb_streams; ++i ) { -- AVCodecContext* codec = os_->fmt_cxt_->streams[i]->codec; -- if ( codec->stats_in ) { -- av_freep( codec->stats_in ); -- } -- avcodec_close( codec ); -- } -- } -- os_->codec_opened_ = false; -- for ( unsigned i = 0; i < os_->fmt_cxt_->nb_streams; ++i ) { -- av_free( os_->fmt_cxt_->streams[i] ); -- } -- } -- -- av_free( os_->fmt_cxt_ ); -- os_->fmt_cxt_ = 0; -- } --} -- -- --//: Return true if the stream is open for writing --bool --vidl_ffmpeg_ostream:: --is_open() const --{ -- return os_->file_opened_; --} -- -- --//: Write and image to the stream --// \retval false if the image could not be written --bool --vidl_ffmpeg_ostream:: --write_frame(const vidl_frame_sptr& frame) --{ -- if (!is_open()) { -- // resize to the first frame -- params_.size(frame->ni(),frame->nj()); -- open(); -- } -- -- AVCodecContext* codec = os_->fmt_cxt_->streams[0]->codec; -- -- if (unsigned( codec->width ) != frame->ni() || -- unsigned( codec->height) != frame->nj() ) { -- vcl_cerr << "ffmpeg: Input image has wrong size. Expecting (" -- << codec->width << 'x' << codec->height << "), got (" -- << frame->ni() << 'x' << frame->nj() << ")\n"; -- return false; -- } -- -- PixelFormat fmt = vidl_pixel_format_to_ffmpeg(frame->pixel_format()); -- -- vidl_pixel_format target_fmt = vidl_pixel_format_from_ffmpeg(codec->pix_fmt); -- static vidl_frame_sptr temp_frame = new vidl_shared_frame(NULL,frame->ni(),frame->nj(),target_fmt); -- -- AVFrame out_frame; -- avcodec_get_frame_defaults( &out_frame ); -- -- // The frame is in the correct format to encode directly -- if ( codec->pix_fmt == fmt ) -- { -- avpicture_fill((AVPicture*)&out_frame, (uint8_t*) frame->data(), -- fmt, frame->ni(), frame->nj()); -- } -- else -- { -- if (!temp_frame->data()) { -- unsigned ni = frame->ni(); -- unsigned nj = frame->nj(); -- unsigned out_size = vidl_pixel_format_buffer_size(ni,nj,target_fmt); -- temp_frame = new vidl_memory_chunk_frame(ni, nj, target_fmt, -- new vil_memory_chunk(out_size, VIL_PIXEL_FORMAT_BYTE)); -- } -- // try conversion with FFMPEG functions -- if (!vidl_ffmpeg_convert(frame, temp_frame)) { -- // try conversion with vidl functions -- if (!vidl_convert_frame(*frame, *temp_frame)) { -- vcl_cout << "unable to convert " << frame->pixel_format() << " to "<<target_fmt<<vcl_endl; -- return false; -- } -- } -- avpicture_fill((AVPicture*)&out_frame, (uint8_t*) temp_frame->data(), -- codec->pix_fmt, frame->ni(), frame->nj()); -- } -- -- AVPacket pkt; -- av_init_packet( &pkt ); -- pkt.stream_index = 0; -- -- out_frame.pts = os_->cur_frame_; -- -- int ret = avcodec_encode_video( codec, (uint8_t*)os_->bit_buf_->data(), os_->bit_buf_->size(), &out_frame ); -- -- if ( ret ) { -- pkt.data = (uint8_t*)os_->bit_buf_->data(); -- pkt.size = ret; -- if ( codec->coded_frame ) { -- pkt.pts = codec->coded_frame->pts; -- } -- if ( codec->coded_frame && codec->coded_frame->key_frame ) { -- pkt.flags |= AV_PKT_FLAG_KEY; -- } -- av_interleaved_write_frame( os_->fmt_cxt_, &pkt ); -- } -- else { -- return false; -- } -- -- ++os_->cur_frame_; -- return true; --} -- --#endif // vidl_ffmpeg_ostream_v4_txx_ _______________________________________________ debian-med-commit mailing list debian-med-commit@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit