1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
From b50e0af12b3c045e7587c86829e1a42ba421c3bc Mon Sep 17 00:00:00 2001
From: Song Bing <b06498@freescale.com>
Date: Wed, 20 May 2015 15:15:08 +0800
Subject: [PATCH 02/26] mpegvideoparse: Need detect picture coding type when
drain
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Need detect picture coding type when drain
Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=749617]
---
gst/videoparsers/gstmpegvideoparse.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index 6896339..769e0fd 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -715,6 +715,22 @@ need_more:
if (GST_BASE_PARSE_DRAINING (parse)) {
GST_LOG_OBJECT (mpvparse, "draining, accepting all data");
off = size;
+ /* decide picture codding type */
+ if (mpvparse->pic_offset >= 0 && mpvparse->pic_offset < off) {
+ GstMpegVideoPacket header;
+
+ header.data = map.data;
+ header.type = GST_MPEG_VIDEO_PACKET_PICTURE;
+ header.offset = mpvparse->pic_offset;
+ header.size = map.size - mpvparse->pic_offset;
+ if (gst_mpeg_video_packet_parse_picture_header (&header, &mpvparse->pichdr))
+ GST_LOG_OBJECT (mpvparse, "picture_coding_type %d (%s), ending"
+ "frame of size %d", mpvparse->pichdr.pic_type,
+ picture_type_name (mpvparse->pichdr.pic_type), off - 4);
+ else
+ GST_LOG_OBJECT (mpvparse, "Couldn't parse picture at offset %d",
+ mpvparse->pic_offset);
+ }
ret = TRUE;
} else {
GST_LOG_OBJECT (mpvparse, "need more data");
--
1.9.1
|