]> granicus.if.org Git - handbrake/commitdiff
libav: simplify patch for corrupt raw video
authorJohn Stebbins <jstebbins.hb@gmail.com>
Wed, 1 Mar 2017 15:00:15 +0000 (08:00 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Wed, 1 Mar 2017 15:00:15 +0000 (08:00 -0700)
contrib/ffmpeg/A17-mkv-rawvideo.patch

index 69800d6cac06d2687c29613dde364140220b2e8c..77430fe09051e696d41b5d68399dc385b3ce6144 100644 (file)
@@ -1,41 +1,22 @@
-From 000203fcadd61329bdf6cb3b25e2b87bd32f7d22 Mon Sep 17 00:00:00 2001
+From 2469f85d5b6d981f891e697dec82e87f169347ba Mon Sep 17 00:00:00 2001
 From: John Stebbins <stebbins@jetheaddev.com>
-Date: Sun, 26 Feb 2017 16:35:31 -0700
-Subject: [PATCH] matroskadec: fix format of AVCodecParameters codec_tag
+Date: Wed, 1 Mar 2017 07:57:44 -0700
+Subject: [PATCH] matroskadec: fix endianness fourcc and codec_tag
 
-It was byte swapped.
 This fixes decode of rawvideo in matroska.
 ---
- libavformat/matroskadec.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
+ libavformat/matroskadec.c | 1 +
+ 1 file changed, 1 insertion(+)
 
 diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
-index 4e121b6..edd1749 100644
+index 4e121b6..75cfa85 100644
 --- a/libavformat/matroskadec.c
 +++ b/libavformat/matroskadec.c
-@@ -123,6 +123,7 @@ typedef struct MatroskaTrackVideo {
-     uint64_t pixel_width;
-     uint64_t pixel_height;
-     uint64_t fourcc;
-+    EbmlBin  color_space;
-     uint64_t interlaced;
-     uint64_t field_order;
-     uint64_t stereo_mode;
-@@ -315,7 +316,7 @@ static EbmlSyntax matroska_track_video[] = {
-     { MATROSKA_ID_VIDEODISPLAYHEIGHT,  EBML_UINT,  0, offsetof(MatroskaTrackVideo, display_height) },
-     { MATROSKA_ID_VIDEOPIXELWIDTH,     EBML_UINT,  0, offsetof(MatroskaTrackVideo, pixel_width) },
-     { MATROSKA_ID_VIDEOPIXELHEIGHT,    EBML_UINT,  0, offsetof(MatroskaTrackVideo, pixel_height) },
--    { MATROSKA_ID_VIDEOCOLORSPACE,     EBML_UINT,  0, offsetof(MatroskaTrackVideo, fourcc) },
-+    { MATROSKA_ID_VIDEOCOLORSPACE,     EBML_BIN,   0, offsetof(MatroskaTrackVideo, color_space) },
-     { MATROSKA_ID_VIDEOPIXELCROPB,     EBML_NONE },
-     { MATROSKA_ID_VIDEOPIXELCROPT,     EBML_NONE },
-     { MATROSKA_ID_VIDEOPIXELCROPL,     EBML_NONE },
-@@ -1612,6 +1613,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
+@@ -1612,6 +1612,7 @@ static int matroska_parse_tracks(AVFormatContext *s)
                  track->video.display_width = track->video.pixel_width;
              if (!track->video.display_height)
                  track->video.display_height = track->video.pixel_height;
-+            if (track->video.color_space.size == 4)
-+                track->video.fourcc = AV_RL32(track->video.color_space.data);
++            track->video.fourcc = av_bswap32(track->video.fourcc);
          } else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
              if (!track->audio.out_samplerate)
                  track->audio.out_samplerate = track->audio.samplerate;