Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zeroconf transcoding #987

Closed
wants to merge 196 commits into from
Closed

Conversation

atamariya
Copy link
Contributor

@atamariya atamariya commented Aug 18, 2016

Basically, UMS queries the device capapbilities (GetProtocolInfo) and accordingly streams or transcodes the media. So far I've tested it on WMP 12, Denon 2113 and XBox 360. However, it's still beta code. While I was at it, I also added some features that I'd wanted.

  • Use the file extension to determine mime type and transcode accordingly. So one can do
    curl localhost:5001/get/27/a.mp4 -o a.mp4
    to download an mp4 version of the media.
  • Migrated to netty 4.0
  • Allows deep search in front-end using DB
  • UPnP search syntax support

Edit:
Demo http://lifeofpenguin.blogspot.com/2016/08/streaming-home-media-via-upnp.html


This change is Reviewable

Anand Tamariya added 30 commits July 1, 2016 22:17
- Implemented start and count for search
- Tested WMP, Denon 2113, BubbleUPnP, XBox (no content navigation)
- Xbox escapes quotes in search criteria
@atamariya
Copy link
Contributor Author

For people who are watching this, here's some bug fixes.

@@ -422,7 +422,7 @@ public static boolean isSupportedMimetype(String mimetype) {
if ("audio/L24".equalsIgnoreCase(mimetype)
|| "video/vnd.dlna.mpeg-tts".equalsIgnoreCase(mimetype)
|| "video/mpeg2".equalsIgnoreCase(mimetype)
|| "audio/vnd.dlna.adts".equals(mimetype)
|| "audio/vnd.dlna.adts".equalsIgnoreCase(mimetype)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defining mimetype as lower or upper case should "clean" the code as all equalsIgnoreCase could be replaced by equals

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Sami32 That will result in less robust code - anyone edition will have to know/remember this rule or create a bug. A much better solution (imo) is to use Enum for things like that, it's type-safe and evaluation is much quicker.

@SubJunk
Copy link
Member

SubJunk commented Jun 2, 2018

Feel free to resurrect

@SubJunk SubJunk closed this Jun 2, 2018
@SubJunk
Copy link
Member

SubJunk commented Feb 11, 2020

@atamariya there was some awesome stuff in here...

SubJunk added a commit that referenced this pull request May 30, 2020
* Revert Netty to 4.0.29

* Updated Netty to 4.0.32

* Fixed MPEG1 video format detection.

* Update to the latest Netty 4 version

* Updated Netty implementation

* Update the Netty implementation continues

* Removed unused import

* Check subtitles only once to speed up browsing

* Some change

* Updated Netty to 4.1.1

* Keep doing Cling searches

* Formatting

* Update netty

* Fixed merging

* Add the 'end of content' marker for chunked transfer based on #987

* Fixed bug reported by @Sami32 and cleans up RequestHandlerV2 based on
the #462 (thanks @mfulgo)

* Update Netty version and fix some bugs

* Updated to latest Netty version

* Update to the latest Netty version

* Bump Netty

* Update

* update

* Removed old code

* Log if stream is chunked

* fix merging

* Updated to the latest version

* Update src/main/java/net/pms/network/RequestHandlerV2.java

Co-authored-by: SubJunk <SubJunk@users.noreply.github.com>

Co-authored-by: SubJunk <subjunk@gmail.com>
Co-authored-by: SubJunk <SubJunk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants