]> granicus.if.org Git - handbrake/commitdiff
QSV: add support for qsv_h264 to the new avformat-based muxers. qsv
authorRodeo <tdskywalker@gmail.com>
Wed, 21 Aug 2013 19:15:37 +0000 (19:15 +0000)
committerRodeo <tdskywalker@gmail.com>
Wed, 21 Aug 2013 19:15:37 +0000 (19:15 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/qsv@5730 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/common.c
libhb/muxavformat.c

index 7a675e27d9fb99144e490522f774cc4957aeabcb..61375a3b2cfb9e8489aeb778da6e0c27807bdce4 100644 (file)
@@ -194,7 +194,7 @@ hb_encoder_internal_t hb_video_encoders[]  =
     { { "VP3 (Theora)",      "libtheora", HB_VCODEC_THEORA,                       HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_THEORA, },
     // actual encoders
     { { "H.264 (x264)",      "x264",      HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_H264,   },
-    { { "H.264 (Intel QSV)", "qsv_h264",  HB_VCODEC_QSV_H264,     HB_MUX_MP4V2   |  HB_MUX_LIBMKV, }, NULL, 1, HB_GID_VCODEC_H264,   },
+    { { "H.264 (Intel QSV)", "qsv_h264",  HB_VCODEC_QSV_H264,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_H264,   },
     { { "MPEG-4",            "mpeg4",     HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG4,  },
     { { "MPEG-2",            "mpeg2",     HB_VCODEC_FFMPEG_MPEG2, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG2,  },
     { { "Theora",            "theora",    HB_VCODEC_THEORA,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_THEORA, },
index 767e8d314d3b401a108feace118ba786912845e8..ff53ebbe9333224f8dc93804284d56421ad03b41 100644 (file)
@@ -207,6 +207,7 @@ static int avformatInit( hb_mux_object_t * m )
     switch (job->vcodec)
     {
         case HB_VCODEC_X264:
+        case HB_VCODEC_QSV_H264:
             track->st->codec->codec_id = AV_CODEC_ID_H264;
 
             /* Taken from x264 muxers.c */
@@ -1015,8 +1016,8 @@ static int avformatMux(hb_mux_object_t *m, hb_mux_data_t *track, hb_buffer_t *bu
     pkt.pts = pts;
     pkt.duration = duration;
 
-    if (track->type == MUX_TYPE_VIDEO &&
-        (job->vcodec == HB_VCODEC_X264 || job->vcodec & HB_VCODEC_FFMPEG_MASK))
+    if (track->type == MUX_TYPE_VIDEO && ((job->vcodec & HB_VCODEC_H264_MASK) ||
+                                          (job->vcodec & HB_VCODEC_FFMPEG_MASK)))
     {
         if (buf->s.frametype == HB_FRAME_IDR)
             pkt.flags |= AV_PKT_FLAG_KEY;