Jump to content


Photo

GStreamer 1.0

gstreamer 1.0 openpli

  • Please log in to reply
2520 replies to this topic

Re: GStreamer 1.0 #1821 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 25 October 2015 - 11:00

How do I set the extra Header ? What is the exact typo ?


You should add the following in /etc/enigma2/settings (init 4 , edit and then init 3)
 
config.mediaplayer.extraHeaders=Test:1234|Test2:2345
Although it does't work and I don't know why.
 
### in one console where enigma2 runs I see

playing 4097:0:1:0:0:0:0:0:0:0:http%3a//headers.cloxy.net/request.php:TestTest
<  4624.379695> [eServiceMP3] construct!
getResolvedKey config.mediaplayer.extraHeaders failed !! (Typo??)
<  4624.385412> [eServiceMP3] playbin uri=http://headers.cloxy.net/request.php
I am getting config.mediaplayer.extraHeaders failed!

I add the following additional values (that control media player user agent) and they worked:
 
config.mediaplayer.useAlternateUserAgent=true
config.mediaplayer.alternateUserAgent=My Enigma2 MediaPlayer
Then when staring enigma2 I can see the following traffic in tcpdump (My Enigma2 MediaPlayer is there...)
 
#### tcpdump -A -s 10240 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

11:51:53.908825 IP my.local.40929 > 104.18.35.34.http: Flags [P.], seq 3700062484:3700062610, ack 800247666, win 1825, length 126
E.....@.@.dp...ph.#"...P..y./..rP..!.o..GET /request.php HTTP/1.1
Host: headers.cloxy.net
Connection: close
icy-metadata: 1
User-Agent: My Enigma2 MediaPlayer


11:51:54.068601 IP 104.18.35.34.http > my.local.40929: Flags [P.], seq 1:1032, ack 126, win 29, length 1031
E../c.@.4...h.#"...p.P../..r..y.P.......HTTP/1.1 200 OK
Date: Sun, 25 Oct 2015 09:51:54 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Set-Cookie: __cfduid=d8679ea96df16dccf36af82df2afdf31b1445766713; expires=Mon, 24-Oct-16 09:51:53 GMT; path=/; domain=.cloxy.net; HttpOnly
Cache-Control: max-age=3600
Expires: Sun, 25 Oct 2015 10:51:54 GMT
Vary: Accept-Encoding
Server: cloudflare-nginx
CF-RAY: 23ad068a28932702-FRA

260
<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8" />
                <title>My Request Headers</title>
        </head>
        <body>
                <h1>Your Request HTTP Headers</h1>
                <ul>
                        <li>Cf-Connecting-Ip: XX.XX.XX.XX</li>
                        <li>User-Agent: My Enigma2 MediaPlayer</li>
                        <li>Icy-Metadata: 1</li>
                        <li>Cf-Visitor: {&quot;scheme&quot;:&quot;http&quot;}</li>
                        <li>X-Forwarded-Proto: http</li>
                        <li>Cf-Ray: 23ad068a28932702-FRA</li>
                        <li>X-Forwarded-For: XX.XX.XX.XX</li>
                        <li>Cf-Ipcountry: GR</li>
                        <li>Accept-Encoding: gzip</li>
                        <li>Connection: close</li>
                        <li>Host: headers.cloxy.net</li>
                </ul>
        </body>
</html>


11:51:54.068911 IP 104.18.35.34.http > my.local.40929: Flags [P.], seq 1032:1037, ack 126, win 29, length 5
E..-c.@.4...h.#"...p.P../..y..y.P...#...0
@OpenPLi, @mx3L, any idea why config.mediaplayer.extraHeaders is not working?

PS. I am trying to open url from bouquets not from plugin.

Edited by athoik, 25 October 2015 - 11:02.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #1822 moell9

  • Member
  • 7 posts

0
Neutral

Posted 25 October 2015 - 12:37

Thanks !

 

addybo mentioned a header with "X-Forwarded-For:81.17.18.55".

Is this then just config.mediaplayer.extraHeaders=X-Forwarded-For:81.17.18.55



Re: GStreamer 1.0 #1823 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 25 October 2015 - 12:57

Thanks !
 
addybo mentioned a header with "X-Forwarded-For:81.17.18.55".
Is this then just config.mediaplayer.extraHeaders=X-Forwarded-For:81.17.18.55

Yes, if you want to specify only X-Forwared-For that's correct.

The problem with the extraHeaders solved, we need to define extraHeaders in Mediaplayer in order this to work.

So with the following values:
 
config.mediaplayer.extraHeaders=Test:1234|Test2:2345|X-Forwarded-For:1.2.3.4
Here is how headers sent out looks like:
 
E...:.@.@..6....h.""...P...j~D..P...>!..GET /request.php HTTP/1.1
Host: headers.cloxy.net
Connection: close
icy-metadata: 1
Test: 1234
Test2: 2345
User-Agent: Enigma2 Mediaplayer
And here is how enigma2 debug log looks like:
 
playing 4097:0:1:0:0:0:0:0:0:0:http%3a//headers.cloxy.net/request.php:TestTest
<318202.232616> [eServiceMP3] construct!
<318202.233441> [eServiceMP3] playbin uri=http://headers.cloxy.net/request.php
<318202.264282> [eServiceMP3] starting pipeline
<318202.351399> [eServiceMP3] setting extra-header 'Test:1234'
<318202.351613> [eServiceMP3] setting extra-header 'Test2:2345'
<318202.351727> [eServiceMP3] setting extra-header 'X-Forwarded-For:1.2.3.4'
resolved to PLAY
@OpenPLi, please merge this request to fix missing config value for extraHeaders: https://github.com/O...enigma2/pull/77


Edit1. Please somebody to make it configurable from UI (Mediaplayer -> initConfigList)

Edited by athoik, 25 October 2015 - 13:01.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #1824 littlesat

  • PLi® Core member
  • 57,224 posts

+701
Excellent

Posted 25 October 2015 - 13:17

Done...

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: GStreamer 1.0 #1825 puc

  • Senior Member
  • 47 posts

0
Neutral

Posted 25 October 2015 - 18:04

guys when is 1.6.0 available on openplu many streams not working ok guz of that  check #SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//albaghdadiahls-i.akamaihd.net/hls/live/221008/albaghdadiaIOS2/01.m3u8:al baghdadia2

 

i had openatvv 1.6.0 it worked ok also with gstreamer 1.4.5 it works ok.

gstreamer needs an update



Re: GStreamer 1.0 #1826 peti

  • Senior Member
  • 115 posts

+1
Neutral

Posted 28 October 2015 - 08:40

Guys, I have several videos with "portrait" resolution like 720x1280. For these videos there's no picture in either version of GST. Can you please look at this and if possible, fix that? Thanks.

 

attached some logs.. 

 

Attached Files


T90 | 28.2E-23.5E-19.2E-13E-9E-4.8E-0.8W-4W

Zgemma H7S | OpenPLI develop branch


Re: GStreamer 1.0 #1827 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 09:24

Guys, I have several videos with "portrait" resolution like 720x1280. For these videos there's no picture in either version of GST. Can you please look at this and if possible, fix that? Thanks.

 

attached some logs.. 

Indeed looks like that all standard MPEG-4  is broken. At last all the media which is converted by ffmpeg standard setting.

 

If a hd video whatever format. Has been converted to MPEG-4 the caps keeps containg the hd resolution. While the video actually is downgraded to a resolution 400x800. (file is 4 times less in size) . Now image stays black (with old gst-0.1) it just played when standard FMPG format was used.

If now a convertion is done using the -vtag DX50 it does work. (then we convert to xvid-5). The caps still containes the initial video res of 720 x 1280 . Can be seen when you play it , You still will see this res. by the box and HD flag. But the image self is in sd.

 

Gues something must be done in our mediasinks to pass the resolution 720 x 1280 which is not done in case off MIMETYPE video/mpeg4 -> STREAMTYPE_MPEG4_Part2 .



Re: GStreamer 1.0 #1828 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 10:40

Further investgation showed that like on some places when googling is mentionned, ffmpeg does an error in convertion. Looks they are wright. As video-codec=(string)"FFmpeg\ MPEG-4";  produced by ffmpeg is off type : STREAMTYPE_XVID .

 

As test I just applied a hack to dvbvideosink.c  gboolean gst_dvbvideosink_set_caps function

			case 4:
			{
				self->stream_type = STREAMTYPE_MPEG4_Part2;
				guint32 fourcc = 0;
				const gchar *value = gst_structure_get_string(structure, "fourcc");
				if (value)
					fourcc = GST_STR_FOURCC(value);
				switch (fourcc)
				{
					// hack to let work standard FMP4 format video-codec=(string)"FFmpeg\ MPEG-4 by gst-1"
					case 0:
						self->stream_type = STREAMTYPE_XVID;
						self->use_dts = TRUE;
						GST_INFO_OBJECT (self, "FOURCC VALUE 0 SET STREAMTYPE TO XVID");
					case GST_MAKE_FOURCC('R', 'M', 'P', '4'):
					case GST_MAKE_FOURCC('x', 'v', 'i', 'd'):
					case GST_MAKE_FOURCC('X', 'V', 'I', 'D'):
						self->stream_type = STREAMTYPE_XVID;
						self->use_dts = TRUE;
#ifdef PACK_UNPACKED_XVID_DIVX5_BITSTREAM
						self->must_pack_bitstream = TRUE;
#endif
					break;
				}

Then the made made with default ffmpeg settings are working fine.

 

log :

0:01:02.254480962 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink1> EVENT stream-start
0:01:02.256229665 30141 0x7399ba00 INFO            dvbaudiosink gstdvbaudiosink.c:739:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> EVENT stream-start
0:01:02.258127036 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink1> EVENT caps
0:01:02.258265665 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:1290:gst_dvbvideosink_set_caps:<dvbvideosink1> caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)30000/1001, width=(int)1280, height=(int)720
0:01:02.258431295 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:1329:gst_dvbvideosink_set_caps:<dvbvideosink1> FOURCC VALUE 0 SET STREAMTYPE TO XVID
0:01:02.258491184 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:1351:gst_dvbvideosink_set_caps:<dvbvideosink1> MIMETYPE video/xvid -> STREAMTYPE_XVID
0:01:02.269971999 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink1> EVENT segment
0:01:02.270140888 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:519:gst_dvbvideosink_event:<dvbvideosink1> SEGMENT rate=1.000000 format=3 start=0 pos=0
0:01:02.270305332 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:520:gst_dvbvideosink_event:<dvbvideosink1> SEGMENT DVB TIMESTAMP=0 HEXFORMAT 0x0
0:01:02.270549999 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink1> EVENT tag
0:01:02.270757665 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:548:gst_dvbvideosink_event:<dvbvideosink1> TAG taglist, video-codec=(string)"FFmpeg\ MPEG-4";
0:01:02.271167813 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink1> EVENT tag
0:01:02.271329665 30141 0x7399b7b0 INFO            dvbvideosink gstdvbvideosink.c:548:gst_dvbvideosink_event:<dvbvideosink1> TAG taglist, encoder=(string)"TMPGEnc\ Video\ Mastering\ Works\ 5\ Version.\ 5.5.2.107", container-format=(string)AVI;

Like can be seen with hack I force xvid. Then the stream works perfect (tested on vuduo2 gst-1.6)



Re: GStreamer 1.0 #1829 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 11:58

The https://github.com/c...ox-dvbmediasink

 

Is now adapted to play sandard MPEG 4 media cretated from HD media with ffmpeg.

 

You can see latest commit :

 

https://github.com/c...aab8f3cc13fdad6



Re: GStreamer 1.0 #1830 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 28 October 2015 - 13:09

Thank you Christopher,

 

I hope this fixes the problems I was having with various mpeg4 streams with odd resolutions causing black screens or freezes.

eg. SBS6 Gemist and various low-resolution iptv streams.

 

I was using the workaround from mx3L:

--- gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c.orig    2015-09-21 14:14:13.477819103 +0200
+++ gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c 2015-09-21 14:15:24.249857811 +0200
@@ -183,8 +183,7 @@
                "mpegversion = (int) { 1, 2 }, "
                VIDEO_CAPS "; "
 #ifdef HAVE_H264
-       "video/x-h264, "
-               VIDEO_CAPS "; "
+       "video/x-h264; "
 #endif
 #ifdef HAVE_H263
        "video/x-h263, "

 

I hope it's not required anymore.

Will test asap.



Re: GStreamer 1.0 #1831 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 16:22

Thank you Christopher,

 

I hope this fixes the problems I was having with various mpeg4 streams with odd resolutions causing black screens or freezes.

eg. SBS6 Gemist and various low-resolution iptv streams.

 

I was using the workaround from mx3L:

--- gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c.orig    2015-09-21 14:14:13.477819103 +0200
+++ gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c 2015-09-21 14:15:24.249857811 +0200
@@ -183,8 +183,7 @@
                "mpegversion = (int) { 1, 2 }, "
                VIDEO_CAPS "; "
 #ifdef HAVE_H264
-       "video/x-h264, "
-               VIDEO_CAPS "; "
+       "video/x-h264; "
 #endif
 #ifdef HAVE_H263
        "video/x-h263, "

I hope it's not required anymore.

Will test asap.

Normally that old hack was not required anymore for x-h264 media (this was already solved by mx3L) By setting the correct header for x-h264

 

commit : https://github.com/c...86557623b48ac07

and commit : https://github.com/c...f807a2d1fb9eee3

 

What is done with last commit indeed is for HD (video) media converted using ffmpeg to mp4 using default settings did not worked anymore. (In gst-0.1 it worked cause somwhere they ad a hack into base sink for that which is removed by gst-1.0)

 

base commands used for convertion :

ffmpeg -i A_HD_in.wmv out.avi

Does deliver a reduced resolution labeled mpeg type 4  media. However the original resolution is kept in tag. Actually the resulting file is for video a divx and not mpeg4_part2 type. and a resolution like the original for example 1280x720 is in tag inclusif HD flag while the real resolution of the out is 800x3xx . And thats a divx file then.

 

A lot off media is done like that since the resulting file size is about 4 times lower then the original so is the video quality.

 

Well those media(and there are a lot off them) do now work back ok with last commit in the multisink after commit :

https://github.com/c...aab8f3cc13fdad6

 

The work-around you are using should not be required anymore.


Edited by christophecvr, 28 October 2015 - 16:25.


Re: GStreamer 1.0 #1832 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 17:09

Note ,

 

on the dm8000 those streams still do not work. That's cause the dm8000 has a limited MPEG4 support. On the dm800se it should be ok like on vuduo2. Other stb's ???



Re: GStreamer 1.0 #1833 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 October 2015 - 17:31

@christophecvr, don't forget to freed memory when you are using gst_tag_list_get_string


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #1834 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 28 October 2015 - 17:46

About extra headers:

 

Back then I was not thinking that extra-headers would be used in bouquets, so I thought filling up config entry would be sufficient.

But when it's used on bouquet items it's quite restrictive, since you could only have one extra header set for every item in bouquet.

 

I suggest we could do it like it's done in Kodi, ie. pass header directly in path string, so every entry in bouquet can have it's own http headers if neccessary.

 

For example:

#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//www.somepath.mp4|header1=value1&header2=value2:test_h1

So header path/header delimiter will be '|', this char is save to use, since it's invalid char in url and has to be percent encoded in case its in url:

http://stackoverflow...e-a-url-invalid

 

Then extra headers will be in format HEADER1=VALUE1&HEADER2=VALUE2...

 

Something like this:

diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index 7614a7d..bc82184 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -435,7 +435,15 @@ eServiceMP3::eServiceMP3(eServiceReference ref):
        m_state = stIdle;
        eDebug("[eServiceMP3] construct!");
 
-       const char *filename = m_ref.path.c_str();
+       const char *filename;
+       size_t pos = m_ref.path.find('|');
+       if (pos != std::string::npos && m_ref.path.compare(0, 4, "http") == 0)
+       {
+               filename = m_ref.path.substr(0, pos).c_str();
+               m_extra_headers = m_ref.path.substr(pos + 1);
+       }
+       else
+               filename = m_ref.path.c_str();
        const char *ext = strrchr(filename, '.');
        if (!ext)
                ext = filename + strlen(filename);
@@ -511,7 +519,8 @@ eServiceMP3::eServiceMP3(eServiceReference ref):
                }
                if (m_useragent.empty())
                        m_useragent = "Enigma2 Mediaplayer";
-               m_extra_headers = eConfigManager::getConfigValue("config.mediaplayer.extraHeaders");
+               if (m_extra_headers.empty())
+                       m_extra_headers = eConfigManager::getConfigValue("config.mediaplayer.extraHeaders");
                if ( m_ref.getData(7) & BUFFERING_ENABLED )
                {
                        m_use_prefillbuffer = true;
@@ -2244,7 +2253,7 @@ void eServiceMP3::playbinNotifySource(GObject *object, GParamSpec *unused, gpoin
                                std::string name, value;
                                size_t start = pos;
                                size_t len = std::string::npos;
-                               pos = _this->m_extra_headers.find(':', pos);
+                               pos = _this->m_extra_headers.find('=', pos);
                                if (pos != std::string::npos)
                                {
                                        len = pos - start;
@@ -2252,7 +2261,7 @@ void eServiceMP3::playbinNotifySource(GObject *object, GParamSpec *unused, gpoin
                                        name = _this->m_extra_headers.substr(start, len);
                                        start = pos;
                                        len = std::string::npos;
-                                       pos = _this->m_extra_headers.find('|', pos);
+                                       pos = _this->m_extra_headers.find('&', pos);
                                        if (pos != std::string::npos)
                                        {
                                                len = pos - start;


1. I had to change ':' header value delimiter since, servicereference uses it as delimiter.

2. config will be not neccessary anymore, should we remove it then?

 

What do you think?


Edited by mx3L, 28 October 2015 - 17:47.


Re: GStreamer 1.0 #1835 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 October 2015 - 18:23

What do you think?

 

I was thinking exacly the same. If you like to use extra headers from bouquets it's to restrictive.

 

Regarding the separator, the # (sparp) is another possible character to use. Normally browsers do not forward # and what follows to server (it is accesible only from client  for anchors etc).


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #1836 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 28 October 2015 - 18:26

@christophecvr, don't forget to freed memory when you are using gst_tag_list_get_string

Yes I forgot that will do it tommorow.

 

I'm also looking for a way to detect more info then tag about the media. Bassically it's an error off ffmpeg (producing a caps into the media still with the original size and HD flag while the media actually is 720x405 SD) Unfortunatelly a lot off persons are using that base ffmpeg command.

 

if You start with media 1280 x 720 trough HD . and You use ffmpeg -i hdmedia.xxx out.avi Thats what ffmpeg does converting the video to 720 x 405 SD but it will keep the original 1280 x 720 resolution and the HD flag.



Re: GStreamer 1.0 #1837 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 28 October 2015 - 22:09

 

What do you think?

 

I was thinking exacly the same. If you like to use extra headers from bouquets it's to restrictive.

 

Regarding the separator, the # (sparp) is another possible character to use. Normally browsers do not forward # and what follows to server (it is accesible only from client  for anchors etc).

 

I found that '|' is sometimes used in video urls, so I agree with '#'. Pull request created.



Re: GStreamer 1.0 #1838 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 28 October 2015 - 22:48

@christophecvr

I looked in riff-media.c in gst-plugins-base where are caps created for FMP4:

    case GST_MAKE_FOURCC ('F', 'M', 'P', '4'):
    case GST_MAKE_FOURCC ('U', 'M', 'P', '4'):
    case GST_MAKE_FOURCC ('F', 'F', 'D', 'S'):
      caps = gst_caps_new_simple ("video/mpeg",
          "mpegversion", G_TYPE_INT, 4,
          "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
      if (codec_name)
        *codec_name = g_strdup ("FFmpeg MPEG-4");
      break;

So it looks to be alright, we could rely on "FFmpeg MPEG-4" codec_name value.



Re: GStreamer 1.0 #1839 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 October 2015 - 22:57

@christophecvr
I looked in riff-media.c in gst-plugins-base where are caps created for FMP4:

    case GST_MAKE_FOURCC ('F', 'M', 'P', '4'):
    case GST_MAKE_FOURCC ('U', 'M', 'P', '4'):
    case GST_MAKE_FOURCC ('F', 'F', 'D', 'S'):
      caps = gst_caps_new_simple ("video/mpeg",
          "mpegversion", G_TYPE_INT, 4,
          "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
      if (codec_name)
        *codec_name = g_strdup ("FFmpeg MPEG-4");
      break;

So it looks to be alright, we could rely on "FFmpeg MPEG-4" codec_name value.

Why not to add fourcc in 0001-riff-media-added-fourcc-to-all-mpeg4-video-caps.patch like standard mpeg4?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #1840 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 28 October 2015 - 23:05

Yes that's also option and probably better for consistency





3 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users


    Bing (1)